C#JSON序列化与反序列化
windows phone学习也有一段时间了,想要做一个新闻客户端练练手,于是就在网上找看有没有接口之类。在天狗播客找到了热点热词新闻资讯API开放接口,接口提供的是JSON格式的数据,由于之前没用过JSON,于是就在网上各种查、技术讨论群上各种问......
废话不多说了,下面把我收获分享出来。望像我一样的小白少走弯路。
一个实体类
public class NewsModel
{
public string Title { get; set; }
public string Times { get; set; }
public string Contents { get; set; }
}
序列化方法
#region 对实体类进行json序列化
/// <summary>
/// 对实体类进行json序列化
/// </summary>
/// <param name="item">实体类对象</param>
/// <returns>json格式字符串</returns>
public static string ToJosnData(object item)
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(item.GetType());
string result = string.Empty;
using (MemoryStream ms = new MemoryStream())
{
serializer.WriteObject(ms, item);
ms.Position = ;
using (StreamReader reader = new StreamReader(ms))
{
result = reader.ReadToEnd();
}
}
return result;
}
#endregion
对实体类进行json序列化
List<NewsModel> ltModel = new List<NewsModel>();
ltModel.Add(new NewsModel { Title = "标题1", Contents = "内容1", Times = "2014-12--2" });
ltModel.Add(new NewsModel { Title = "标题2", Contents = "内容2", Times = "2014-12--2" });
ltModel.Add(new NewsModel { Title = "标题3", Contents = "内容3", Times = "2014-12--2" });
ltModel.Add(new NewsModel { Title = "标题4", Contents = "内容4", Times = "2014-12--2" });
ltModel.Add(new NewsModel { Title = "标题5", Contents = "内容5", Times = "2014-12--2" });
ltModel.Add(new NewsModel { Title = "标题6", Contents = "内容6", Times = "2014-12--2" });
string jsonstr=JsonHelper.ToJosnData(ltModel);
输出JSON字符串为:

把JSON字符串序列为实体对象的方法是使用Newtonsoft.Json.dll,可以在官网下载http://json.codeplex.com/
引入命名空间以后,就很容易了
List<NewsModel> DeModel = new List<NewsModel>();
var root = JsonConvert.DeserializeObject<NewsModel[]>(jsonstr);
foreach (var item in root)
{
DeModel.Add(new NewsModel { Title = item.Title, Contents = item.Contents, Times = item.Times });
}
这样就把JSON字符串反序列化为一个list集合了。
参考:http://stackoverflow.com/questions/8639421/json-parsing-in-windows-phone-7。
C#JSON序列化与反序列化的更多相关文章
- DotNet的JSON序列化与反序列化
JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有 ...
- C#中JSON序列化和反序列化
有一段时间没有到博客园写技术博客了,不过每天逛逛博客园中大牛的博客还是有的,学无止境…… 最近在写些调用他人接口的程序,用到了大量的JSON.XML序列化和反序列化,今天就来总结下json的序列化和反 ...
- Newtonsoft.Json 序列化和反序列化 时间格式
From : http://www.cnblogs.com/litian/p/3870975.html 1.JSON序列化 string JsonStr= JsonConvert.SerializeO ...
- Net中JSON序列化和反序列化处理(日期时间特殊处理)
0 缘由 笔者最近在web api端使用Json.Net进行序列化处理,而在调用端使用DataContractSerializer进行反序列化,遇到日期时间处理反序列化不成功[备注:笔者使用Net ...
- Newtonsoft.Json 序列化和反序列化 时间格式 [转]
1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain ...
- C# JSON 序列化和反序列化——JavaScriptSerializer实现
一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此, ...
- 序列化对象C++对象的JSON序列化与反序列化探索
新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正 一:背景 作为一名C++开发人员,我始终很期待能够像C#与JAVA那样,可以省力的进行对象的序列化与反序列化,但到现在为止,还没有找 ...
- C++对象的JSON序列化与反序列化探索完结-列表的序列化与反序列化
在前两篇文章中,我们已经完成对普通对象以及复杂对象嵌套的序列化与反序列化,见如下地址: C++对象的JSON序列化与反序列化探索 C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化 ...
- C++对象的JSON序列化与反序列化探索续-复杂对象的序列化与反序列化
本文是基本上一篇博文进行改进而成,上一篇请见: C++对象的JSON序列化与反序列化探索 此处就不多说了,直接上代码. 1. 序列化基类 #pragma once #include <strin ...
- C++对象的JSON序列化与反序列化探索
一:背景 作为一名C++开发人员,我一直很期待能够像C#与JAVA那样,可以轻松的进行对象的序列化与反序列化,但到目前为止,尚未找到相对完美的解决方案. 本文旨在抛砖引玉,期待有更好的解决方案:同时向 ...
随机推荐
- 怎么样ubuntu 64 11.04 在执行32位程序
上网一查非常多的信息,头发上的今天ubuntu 64 11.04 在执行32位程序安装ia32-libs包,可执行例如,下面的命令.但提示无法安装 apt-get install ia32-libs ...
- MyBatis与Spring设置callSettersOnNulls
项目中集成Mybatis与Spring,使用的是Mybatis3.2.7,以及Spring4.0.5,mybatis-spring-1.2.2;由于项目组成员想要偷懒,将数据从DB中查询出来时须要将字 ...
- NGUI 3.5课程(五岁以下儿童)button-图片切换
然后,我们去了一个样本,做一个button画面切换. 特征,像球员"开始"和"暂停". 写TestButton.cs脚本: using UnityEngine; ...
- c# Ftp下载程序源代码解析
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 【CTO辩论】移动创业大军:谁斗争or变更代理
众创时代.英雄辈出. 但千军万马过独木桥,竞争厮杀也异常残酷.有人说,这个时代不宜创业,由于技术门槛高了.推广难度高了.盈利模式没了.创业变重了.玩法变了...... 也有人说,时势造英雄.天时地利人 ...
- spring mvc 控制器方法传递一些经验对象的数组
由于该项目必须提交一个表单,其中多个对象,更好的方法是直接通过在控制器方法参数的数组. 因为Spring mvc框架在反射生成控制方法的參数对象的时候会调用这个类的getDeclaredConstru ...
- SharePoint 2013 禁用搜索服务
原文:SharePoint 2013 禁用搜索服务 前言,在SharePoint2013中,对于硬件需求的提升,让我们虚机里安装总是一筹莫展,尤其开启了搜索服务以后,对于内存的消耗就更加严重,尤其对于 ...
- uva 1556 - Disk Tree(特里)
题目连接:uva 1556 - Disk Tree 题目大意:给出N个文件夹关系,然后依照字典序输出整个文件文件夹. 解题思路:以每一个文件夹名作为字符建立一个字典树就可以,每一个节点的关系能够用ma ...
- MySQL JDBC的queryTimeout坑
遇到一个MySQL JDBC跑execute规定的方法queryTimeout坑,更恶心,无论是BUG,不能,^_^,为什么要说?请看下面的说明: 现象: 用同一个Connection运行大批量SQL ...
- Android FM学习中的模块 FM启动过程
最近的研究FM模,FM是一家值我正在学习模块.什么可以从上层中可以看出. 上层是FM按钮的操作和界面显示,因此调用到FM来实现广播收听的功能. 看看Fm启动流程:例如以下图: 先进入FMRadio.j ...