读书人

json 反序列化 为.net对象,该如何处理

发布时间: 2012-03-21 13:33:15 作者: rapoo

json 反序列化 为.net对象
"{ handle:'load', condtag: 0, condtxt: '', attr: '', operatestatus: 0,subofmine:{id:0,name:'ok'} }"
如何将json 反序列化为.net对象,注意关键是对象内部还有个子对象subofmine:{id:0,name:'ok'},这个处理好久都客服不了,望高人指点迷津 !

[解决办法]
NewTonsoft.dll很容易就能处理你这个问题。。

你的对象里面。。再添加一个list属性。。就来装,subofmine:{id:0,name:'ok'}




[解决办法]
http://archive.cnblogs.com/a/2065238/
[解决办法]
如果是在.NET2.0环境用2楼说的NewTonsoft.dll可以解决
如果是以上版本,自带了json的解析库
[解决办法]
subofmine:{id:0,name:'ok'}这在对象里面是一个对象属性的变量,所以你在设计这个类的时候应该这么写。

C# code
public class class1{ [JsonProperty("handle")] public string Handle{get;set;} [JsonProperty("condtag")] public int Condtag{get;set;} ................... public Subofmine subofmine{get;set} }public class Subofmine{ [JsonProperty("id")] public int Id{get;set;} [JsonProperty("name")] public string Name{get;set;}}
[解决办法]
Newtonsoft.Json.dll
JsonConvert.DeserializeObject(json, DataType);
自己写个ActionFilter
不知道新版本还有这个问题么
[解决办法]
自己先定义个对应类
C# code
        /// <summary>        /// Serialize object to string of json format        /// </summary>        private string JsonSerializer<T>(T t)        {            var ser = new DataContractJsonSerializer(typeof(T));            var ms = new MemoryStream();            ser.WriteObject(ms, t);            string jsonString = Encoding.UTF8.GetString(ms.ToArray());            ms.Close();            return jsonString;        }        /// <summary>        /// Deserialize string of json format to object        /// </summary>        private T JsonDeserialize<T>(string jsonString)        {            var ser = new DataContractJsonSerializer(typeof(T));            var ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));            var obj = (T)ser.ReadObject(ms);            return obj;        }
[解决办法]

Newtonsoft.Json.dll

网上例子也有很多。。。

读书人网 >asp.net

热点推荐