C#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。

时间: 2024-10-18 20:10:32

C#JSON序列化与反序列化的相关文章

DotNet的JSON序列化与反序列化

JSON(JavaScript Object Notation)JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.在现在的通信中,较多的采用JSON数据格式,JSON有两种表示结构,对象和数组,JSON 数据的书写格式是:名称/值对. 在vs解决方案中以前采用xml树的形式,组织项目的结构.在新的.net core中,项目的解决方案采用json作为项目的结构说明. 在.net的前后台数据交互中,采用序列化对象为json,前端ajax接受传输数据,反序列化为对象,在

JSON序列化和反序列化

1.JSON序列化 string JsonStr= JsonConvert.SerializeObject(Entity); eg: A a=new A(); a.Name="Elain00"; a.Hobby="eat eat"; string jsonStr=JsonConvert.SerializeObject(a); 2.JSON反序列化 string jsonstr = "jsonString"; Class model = JsonC

C#中JSON序列化和反序列化

json序列化和反序列化帮助类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.Serialization; using System.Runtime.Serialization.Json; using System.IO; using System.Text.RegularExpressions; using System.We

newtonsoft.json 序列化,反序列化

public class Book { public string BookID { get; set; } public DateTime PublishDate { get; set; } public decimal Price { get; set; } public override string ToString() { return "ID:" + BookID + "; Date:" + PublishDate.ToShortDateString()

C# 二进制、Xml、Json序列化和反序列化

昨天利用业余时间对比了下C#中三种序列化方式(二进制.Xml.Json),综合来看json方式生成的字节数组长度最短,但当你需要序列化的对象中包括byte[]类型,且其长度较长时,序列化后,xml方式的长度较json方式更短.xml方式中对byte[]做了base64转换. 最后综合三种情况,写了一个基于泛型的通用类来完成序列化和反序列化操作,仅供参考,若有什么错误之处,还请指教. using System; using System.Collections.Generic; using Sys

C# JSON 序列化和反序列化——JavaScriptSerializer实现

一. JavaScriptSerializer 类由异步通信层内部使用,用于序列化和反序列化在浏览器和 Web 服务器之间传递的数据.您无法访问序列化程序的此实例.但是,此类公开了公共 API.因此,当您希望在托管代码中使用 JavaScript 对象符号 (JSON) 时可以使用此类. 若要序列化对象,请使用 Serialize 方法.若要反序列化 JSON 字符串,请使用 Deserialize 或 DeserializeObject 方法.若要序列化和反序列化 JavaScriptSeri

json序列化和反序列化案例

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集合.字典的处理. 序列化简单理解为:把集合.数组等里的数据变成字符串 反序列化简单理解为:把字符串还原成集合,数组等对象. 1.对JSON数据进行序列化和反序列化 方法一: 可以使用DataContractJsonSeria

Java下用Jackson进行JSON序列化和反序列化(转)

Java下常见的Json类库有Gson.JSON-lib和Jackson等,Jackson相对来说比较高效,在项目中主要使用Jackson进行JSON和Java对象转换,下面给出一些Jackson的JSON操作方法. 一.准备工作 首先去官网下载Jackson工具包,下载地址http://wiki.fasterxml.com/JacksonDownload.Jackson有1.x系列和2.x系列,截止目前2.x系列的最新版本是2.9.0,2.x系列有3个jar包需要下载: jackson-cor

转:Json序列化和反序列化

JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍,ASP.NET如何序列化和反序列化的处理,在序列化和反序列化对日期时间.集 合.字典的处理.     一.JSON简介 JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式. JSON是“名值对”的集合.结构由大括号'{}',