通常遇到复杂类型返回值序列化之后,复杂类型里面的成员如果也是复杂的那么格式有可能是json类型或者是类似于json的键值对集合
{[
{
"DocId": "",
"_ReceiptPlanId": "",
"_Creator": "",
"_Updator": null,
"_Duty": null,
"_DRDepart": "",
"_OgrId": ""
},
{
"DocId": "",
"_ReceiptPlanId": "",
"_Creator": "",
"_Updator": null,
"_Duty": null,
"_DRDepart": "",
"_OgrId": ""
},
{
"DocId": "",
"_ReceiptPlanId": "",
"_Creator": "",
"_Updator": null,
"_Duty": null,
"_DRDepart": "",
"_OgrId": ""
}
]}
JArray Foreignarray = data.result.Foreign;
ForeignList = Foreignarray.ToObject<List<Dictionary<string,string>>>();
class sss {[ { "Id": "", "DictId": "", "LangId": "", "DispName": "", "Width": 100, "PID": "", "Creator": null, "CreatedDate": "", "Deleted": false, }, { "Id": "", "DictId": "", "LangId": "", "DispName": "", "Width": 100, "PID": "", "Creator": null, "CreatedDate": "", "Deleted": false, } ]} JArray returnResult = data.result.returnResult; var ssslist = returnResult.ToObject<List<sss>>();
{{ "bbb": [ { "disabled": false, "group": null, "selected": false, "text": "", "value": "" }, { "disabled": false, "group": null, "selected": false, "text": "", "value": "" }, { "disabled": false, "group": null, "selected": false, "text": "", "value": "" } ] "aaa": [ { "disabled": false, "group": null, "selected": false, "text": "", "value": "" }, { "disabled": false, "group": null, "selected": false, "text": "", "value": "" }, { "disabled": false, "group": null, "selected": false, "text": "", "value": "" } ] }} var Foreignarray = ((Newtonsoft.Json.Linq.JObject)data.result.DropDownList); ForeignList = Foreignarray.ToObject<Dictionary<string, List<SelectListItem>>>();
{[ { "_Customer": "", "_CustomsType": "", "_ShippingType": "", "_InvtAttr": "", "_Area": "", "_RcptDate": null } ]} JArray Foreignarray = data.result.Foreign; var ForeignList = Foreignarray[0].ToObject<Dictionary<string, string>>();

前台 billcode= "[{"BillCOde"}:"111\n333"]"
传到后台: "[{\"BillCOde\"}:\"111\n333\"]"
JArray JarryBillCode = (JArray)JsonConvert.DeserializeObject(BillCode);
var DicBillCode = JarryBillCode[0].ToObject<Dictionary<string, string>>();
============================================================
当两个复杂的class结构一样 class成员一样 但是区别在一个是接口类型 一个是类的情况下
可以用JToken当做中间媒介转换
先序列化成字符串 再转成JToken 然后再通过JToken 用ToObject转换进行二者之间的相互转换
如果是类里面有类的两层参数 参数名称一定要和类名 成员名保持一致
浙公网安备 33010602011771号