c# 反序列化JSON的问题,里面有多个数组
如下,我只返序列化了得到了sign、version等的值,但是datatuser里面的值要如何反序列化呢?{"datauser":{"changeCode":"0401"...
如下,我只返序列化了得到了sign、version等的值,但是datatuser里面的值要如何反序列化呢?
{"datauser":{"changeCode":"0401","orderDesc":"订单状态从“出票完成”变为“改期申请中”","orderNo":"hh13120218210633","time":1386031561392,"transactionId":"yy131202182106330401"},"notifyType":"ORDER","sign":"C69098DC193AA5B3AC4A6F22672A62","version":"1.5"} 展开
{"datauser":{"changeCode":"0401","orderDesc":"订单状态从“出票完成”变为“改期申请中”","orderNo":"hh13120218210633","time":1386031561392,"transactionId":"yy131202182106330401"},"notifyType":"ORDER","sign":"C69098DC193AA5B3AC4A6F22672A62","version":"1.5"} 展开
展开全部
不管有多少的数组,不管里面是什么类型的都无所谓,只是需要你定义一个和你要序列化后的object相同就行了。具体做法:
1、定义class(和你的字段相同即可)
2、反序列化,源码为:
public static T ResolveJson<T>(String json)
{
if (String.IsNullOrEmpty(json))
{
return default(T);
}
T obj = new JavaScriptSerializer().Deserialize<T>(json);
return obj;
}
展开全部
public class DataUser
{
public string changeCode { get; set; }
public string orderDesc { get; set; }
public string orderNo { get; set; }
public long time { get; set; }
public string transactionId { get; set; }
}
//用这个类反序列化
public class Order
{
public DataUser datauser { get; set; }
public string notifyType { get; set; }
public string sign { get; set; }
public string version { get; set; }
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
/// <summary>
/// JSON反序列化
/// </summary>
public static T JsonDeserialize<T>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
T obj = (T)ser.ReadObject(ms);
return obj;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你为什么不用Newtonsoft.json.dll来反序列化呢?它帮你封装好了,而且性能优化的也比较好
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询