首页 > Web开发 > 详细

.NET Framework 4.5 与 .NET Framework 2.0中JSON序列化反序列化的差别

时间:2016-03-16 19:11:37      阅读:908      评论:0      收藏:0      [点我收藏+]

在.NET Framework 4.5中,JSON的序列化与反序列化编写如下:

引用命名空间:

技术分享
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Web;
5 using System.IO;
6 using System.Text;
7 using System.Runtime.Serialization.Json;
8 using System.Runtime;
9 using System.Net;
命名空间

程序编程:

技术分享
 1  /// <summary>
 2  /// JSON序列化
 3  /// </summary>
 4  /// <typeparam name="T"></typeparam>
 5  /// <param name="JsonStr"></param>
 6  /// <returns></returns>
 7 
 8 public static List<T> JSONStringToList<T>(this string JsonStr)
 9 {
10         System.Web.Script.Serialization.JavaScriptSerializer Serializer = new System.Web.Script.Serialization.JavaScriptSerializer();
11         List<T>  objs=Serializer.Deserialize<List<T>>(JsonStr);
12         return objs;                                  
13 }
JSON序列化
 
技术分享
 1 /// <summary>
 2  /// JSON反序列化
 3  /// </summary>
 4  /// <typeparam name="T"></typeparam>
 5  /// <param name="JsonStr"></param>
 6  /// <returns></returns>
 7 
 8 public static T Deserializer<T>(string json)
 9 {
10           T obj=Activator.CreateInstance<T>();
11           using(MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json)))
12           {
13                    DataContractJsonSerializer serializer = new DataConstractJsonSerializer(obj.GetType());
14                    return (T)serializer.ReadObject(ms);
15            }      
16 }
JSON反序列化

在.NET Framework 2.0中,JSON的序列化与反序列化编写如下:

首先我下载了一个Newtonsoft.Json.Net20.dll文件,在程序中引用;

引用命名空间:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Web;
 4 using System.IO;
 5 using System.Text;
 6 using System.Runtime.Serialization;
 7 using System.Runtime;
 8 using System.Net;
 9 using Newtonsoft.Json; //添加Newtonsoft.Json.Net20.dll引用之后
 10 //可以引用此命名空间
 11 //在2.0中不能引用using System.Runtime.Serialization.Json;命名空间

程序编程:

技术分享
 1 /// <summary>
 2 /// JSON序列化
 3 /// </summary>
 4 /// <typeparam name="T"></typeparam>
 5 /// <param name="JsonStr"></param>
 6 /// <returns></returns>
 7 public static List<T> JSONStringToList<T>(string JsonStr)
 8         { 
 9             JsonSerializer serializer = new JsonSerializer();
10             StringReader sr =  new StringReader(JsonStr);
11             object o = serializer.Deserializer(new JsonTextReader(sr),typeof(List<T>));
12              List<T> list = o as List<T>;
13              return list;
14 
15         }
JSON序列化

 

 

/// <summary>
/// JSON反序列化
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="json"></param>
/// <returns></returns>
        public static T Deserialize<T>(string json)
        {
            T t = (T)JsonConvert.DeserializeObject(json);
            return t;

        }

 

在2.0中这样编写是能够生成成功的,但在添加引用时发现Microsoft.CSharp没有找到2.0版本的。

所以程序运行起来还是会报错:

技术分享

 

(关于ASP.NET中JSON的序列化和反序列化的知识可详看这位大神的文章:http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html)

目前仍没有找到2.0版本的Microsoft.CSharp引用。

 

.NET Framework 4.5 与 .NET Framework 2.0中JSON序列化反序列化的差别

原文:http://www.cnblogs.com/menliu/p/5284624.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!