CnPlayer

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 563|回复: 0

[转帖] C# .net中json字符串和对象之间的转化方法

[复制链接]

72

主题

101

帖子

2051

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2051
发表于 2018-7-31 09:27:48 | 显示全部楼层 |阅读模式
C# .net中json字符串和对象之间的转化方法




json作为作为一种最常用的数据,应用很广泛,在.net中如何把一个对象转化为json字符串呢?
主要有一下几种
1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型
2使用开源的类库Newtonsoft.Json
3使用JavaScriptSerializer类
4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。
1按照json的定义自己转化,难度很大,但很灵活。需要自己处理各种特殊字符,各种数据类型
要写成通用的核心就是使用反射。
2使用开源的类库Newtonsoft.Json,很方便,.net的各个版本都有。

[csharp] view plain copy

  •        /// <summary>  
  •        /// 对象转为json  
  •        /// </summary>  
  •        /// <typeparam name="ObjType"></typeparam>  
  •        /// <param name="obj"></param>  
  •        /// <returns></returns>  
  •        public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class  
  •        {
  •            string s = JsonConvert.SerializeObject(obj);  
  •            return s;  
  •        }
  •        /// <summary>  
  •        /// json转为对象  
  •        /// </summary>  
  •        /// <typeparam name="ObjType"></typeparam>  
  •        /// <param name="JsonString"></param>  
  •        /// <returns></returns>  
  •        public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class  
  •        {
  •            ObjType s = JsonConvert.DeserializeObject<ObjType>(JsonString);
  •            return s;  
  •        }




3JavaScriptSerializer类 ,使用.NET Framework 3.5/4.0中提供的System.Web.Script.Serialization命名空间下的JavaScriptSerializer类进行对象的序列化与反序列化。需要添加程序集System.Web.Extensions.dll。

[csharp] view plain copy

  •        /// <summary>  
  •        /// 对象转为json  
  •        /// </summary>  
  •        /// <typeparam name="ObjType"></typeparam>  
  •        /// <param name="obj"></param>  
  •        /// <returns></returns>  
  •        public static string ObjToJsonString<ObjType>(ObjType obj) where ObjType : class  
  •        {
  •            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();  
  •            string s = jsonSerializer.Serialize(obj);  
  •            return s;  
  •        }
  •        /// <summary>  
  •        /// json转为对象  
  •        /// </summary>  
  •        /// <typeparam name="ObjType"></typeparam>  
  •        /// <param name="JsonString"></param>  
  •        /// <returns></returns>  
  •        public static ObjType JsonStringToObj<ObjType>(string JsonString) where ObjType : class  
  •        {
  •            JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();  
  •            ObjType s = jsonSerializer.Deserialize<ObjType>(JsonString);
  •            return s;  
  •        }



4使用System.Runtime.Serialization.dll提供的DataContractJsonSerializer或者 JsonReaderWriterFactory实现。具体可参考


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|玩儿家 ( 京ICP备16001541号-1 )

GMT+8, 2018-12-16 16:50 , Processed in 0.062062 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表