"{ 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
网上例子也有很多。。。