开发者社区> 杰克.陈> 正文

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。

 

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
hibernate+spring mvc, 解决hibernate 对象懒加载 json序列化问题
引用地址 在使用Spring MVC时,@ResponseBody 注解的方法返回一个有懒加载对象的时候出现了异常,以登录为例:   Java代码   @RequestMapping("login")       @ResponseBody       public O...
911 0
【Java基础】序列化与反序列化深入分析 (下)
 复习Java基础知识点的序列化与反序列化过程,整理了如下学习笔记。
11 0
C#高性能二进制序列化
二进制序列化可以方便快捷的将对象进行持久化或者网络传输,并且体积小、性能高,应用面甚至还要高于json的序列化;开始之前,先来看看dotcore/dotne自带的二进制序列化:C#中对象序列化和反序列化一般是通过BinaryFormatter类来实现的二进制序列化、反序列化的。
1544 0
怎么设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程
10083 0
+关注
杰克.陈
一个安静的程序猿~
10427
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载