C#JSON序列化与反序列化

简介: 原文:C#JSON序列化与反序列化windows phone学习也有一段时间了,想要做一个新闻客户端练练手,于是就在网上找看有没有接口之类。在天狗播客找到了热点热词新闻资讯API开放接口,接口提供的是JSON格式的数据,由于之前没用过JSON,于是就在网上各种查、技术讨论群上各种问...... 废话不多说了,下面把我收获分享出来。
原文: 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 = 0;
                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。

 

目录
相关文章
|
1月前
|
存储 C#
C#中的序列化和反序列化
C#中的序列化和反序列化
12 0
|
1月前
|
存储 Java 数据库
|
10天前
|
存储 Java
Java输入输出:解释一下序列化和反序列化。
Java中的序列化和反序列化是将对象转换为字节流和反之的过程。ObjectOutputStream用于序列化,ObjectInputStream则用于反序列化。示例展示了如何创建一个实现Serializable接口的Person类,并将其序列化到文件,然后从文件反序列化回Person对象。
17 5
|
1月前
|
存储 C#
C#中的序列化和反序列化案例
C#中的序列化和反序列化案例
11 0
|
1月前
|
JSON Java Maven
使用Jackson进行 JSON 序列化和反序列化
使用Jackson进行 JSON 序列化和反序列化
24 0
|
1月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
18 0
|
1月前
|
存储 JSON 网络协议
【计算机网络】序列化,反序列化和初识协议
【计算机网络】序列化,反序列化和初识协议
|
2月前
|
vr&ar
MFC序列化及反序列化变量
MFC序列化及反序列化变量
16 0
|
2月前
|
vr&ar
MFC序列化及反序列化对象
MFC序列化及反序列化对象
18 0
|
2月前
|
JSON 数据格式 C++
[序列化协议] --- JSON
[序列化协议] --- JSON
31 0

热门文章

最新文章