110,567
社区成员
发帖
与我相关
我的任务
分享
{"Creator":"dss","NeedUpDateFields":[""],"Model":{"FID":0,"FBillTypeID":{"FNumber":"XSDD01_SYS"},"FBillNo":"1535759143","FDate":"2015-12-24","FBusinessType":"NORMAL","FSaleOrgId":{"FNUMBER":101},"FCustId":{"FNUMBER":"CUST0001"},"FReceiveId":{"FNUMBER":"2014082202"},"FSettleCurrId":{"FNumber":"PRE001"},"FHeadDeliveryWay":{"FNumber":"JHFS01_SYS"},"FSalerId":{"FNumber":"040101"},"FSaleOrderEntry":[{"FSeq":1,"FSettleOrgIds":{"FNumber":101},"FUnitID":{"FNumber":"Pcs"},"FMaterialId":{"FNumber":"2040020044"},"FQty":"15","FDeliveryDate":"2016-05-20","FOrderEntryPlan":[{"FEntryID":0,"FPlanDeliveryDate":"2016-05-20"}]}],"FSaleOrderFinance":{"FDetailID":0,"FExchangeRate":1}}}
string json = "{'Creator':'dss','NeedUpDateFields':[''],'Model':{'FID':0,'FBillTypeID':{'FNumber':'XSDD01_SYS'},'FBillNo':'1535759143','FDate':'2015-12-24','FBusinessType':'NORMAL','FSaleOrgId':{'FNUMBER':101},'FCustId':{'FNUMBER':'CUST0001'},'FReceiveId':{'FNUMBER':'2014082202'},'FSettleCurrId':{'FNumber':'PRE001'},'FHeadDeliveryWay':{'FNumber':'JHFS01_SYS'},'FSalerId':{'FNumber':'040101'},'FSaleOrderEntry':[{'FSeq':1,'FSettleOrgIds':{'FNumber':101},'FUnitID':{'FNumber':'Pcs'},'FMaterialId':{'FNumber':'2040020044'},'FQty':'15','FDeliveryDate':'2016-05-20','FOrderEntryPlan':[{'FEntryID':0,'FPlanDeliveryDate':'2016-05-20'}]}],'FSaleOrderFinance':{'FDetailID':0,'FExchangeRate':1}}}".Replace('\'', '\"');
JObject obj = JsonConvert.DeserializeObject(json) as JObject;
int qty = (int)obj["Model"]["FSaleOrderEntry"][0]["FQty"]; // 15
// dynamic的做法:
dynamic d = obj;
int q = d.Model.FSaleOrderEntry[0].FQty; // 15
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<T>(jsonText);
关键的问题,这个T太复杂,我是不想手写,后来才知道网上有现成的json转C#/Java实体类的方法,轻松简洁
http://www.bejson.com/convert/json2csharp/
如果只是读取数据,使用楼上JObject和dynamic 两种类型,都是比较好的方法