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-09-17 04:31:23

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

JSON序列化与反序列化

以下是对JSON序列化与反序列化进行了详细的分析介绍,需要的朋友可以过来参考下   方法一:引入System.Web.Script.Serialization命名空间使用 JavaScriptSerializer类实现简单的序列化序列化类:Personnel 复制代码 代码如下:     public class Personnel         {             public int Id { get; set; }             public string Name {

asp.net JSON序列化与反序列化使用

  对JSON数据进行序列化和反序列化 可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例. DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用;.NET Framework 4在System.Runtime.Seri

C#实现的json序列化和反序列化代码实例

  这篇文章主要介绍了C#实现的json序列化和反序列化代码实例,本文讲解了两种实现方法,并直接给出代码示例,需要的朋友可以参考下 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64

Json序列化和反序列化方法解析

 本篇文章主要是对Json序列化和反序列化方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助  代码如下:  /// <summary>         /// Json序列化,用于发送到客户端         /// </summary>         public static string ToJsJson(this object item)         {               DataContractJsonSerializer serializer

windows phone8.1:Xml,Json序列化和反序列化

原文:windows phone8.1:Xml,Json序列化和反序列化 小梦本例主要实现以下四点内容: 将Car对象序列化为xml 将Car对象序列化为Json 将xml反序列化为Car对象 将json反序列化为json对象 Car类如下: [task]public class Car{public int Id { get; set; }public string Make { get; set; }public string Model { get; set; }public int Ye

PHP中SERIALIZE和JSON序列化与反序列化的区别

在PHP中,serialize和json两种方式对一个对象或数组进行序列化或反序列化有什么区别呢? 假设一个对象和一个数组: $web = new stdClass; $web->site = 'tantengvip'; $web->owner = 'tuntun'; $web->age = 5; 和 $web = array(); $web['site'] = 'tantengvip'; $web['owner'] = 'tuntun'; $web['age'] = 5; 对它们分别用

asp.net JSON序列化与反序列化使用说明

对JSON数据进行序列化和反序列化 可以使用DataContractJsonSerializer类将类型实例序列化为JSON字符串,并将JSON字符串反序列化为类型实例. DataContractJsonSerializer在System.Runtime.Serialization.Json命名空间下,.NET Framework 3.5包含在System.ServiceModel.Web.dll中,需要添加对其的引用:.NET Framework 4在System.Runtime.Serial

C# XML和JSON 序列化与反序列化

1.JSON的序列化与反序列化     JSON(JavaScript Object Notation)是一种轻量级的数据交换语言,它虽然是JavaScript的一个子集,但它是独立于语言的文本格式.它的数据格式比较简单,易于读写,且都是压缩的,占用带宽小且易于解析,通常会用JSON格式来传输数据或者用于数据存储.有关JSON数据结构语法的更多知识大家可以在网上其它的地方进行了解,我们只要记住在服务端向客户端传输数据时经常使用它,然后对它的序列化和反序列化非常值得了解就ok了.序列化的过程就是把

C# 利用Newtonsoft.Json进行Json序列化与反序列化

我们可以通过DataContractJsonSerializer类来序列化一个对象为json字符串. public class JsonConvert<T> { public static string ObjectToJson(T obj) { var serializer = new DataContractJsonSerializer(typeof(T)); var stream = new MemoryStream(); serializer.WriteObject(stream, o