[英]How do I Create DataTable from with multiple nested JSON Objects in C#
每当我获取动态JSON数据时,它都可以是JSON数组或简单的JSON对象或嵌套的JSON对象。
我正在尝试反序列化并将JSON对象/数组转换为DataTable,以便使用Newtonsoft.Json进行进一步处理。
我当前的代码是
public DataTable ConvertJson2DataTable(string jdata)
{
DataTable dt = null;
try {
dt = (DataTable)JsonConvert.DeserializeObject(jdata, (typeof(DataTable)));
}
catch (Exception ex)
{
MessageBox.Show("exception: " +ex.Message.ToString());
}
return dt;
}
它适用于常规JSON对象和数组。
但是,当使用某些复杂的JSON对象时,会收到“在完成反序列化对象后在JSON字符串中找到其他文本”。
这是我的示例JSON数据
{
"ads": {
"items": [],
"total": 0,
"page": 1
},
"member": {
"memberId": "649991",
"displayName": "",
"email": "hasaxxx@hotodeal.com",
"memberStatus": "Y",
"smiId": "7aa205ea-7aa2-7aa2-7aa2-7aa205eac183",
"facebookId": "100001412016857",
"registerDate": null,
"emailConfirmed": false,
"smsConfirmed": false,
"facebookConfirmed": false,
"lineId": null,
"wechatId": null,
"displayImage": "",
"firstName": "Hasadin",
"lastName": "Pankran",
"telephone": "",
"mobile": null,
"listingCount": {
"online": 0,
"edit": 0,
"waiting": 0
},
"phones": null
}
}
由于表/数据表代表用于复杂数据结构或关系模型的简单数据结构,因此应将其转换为数据集而不是数据表。
用于转换为数据集的JSON结构应如下所示:
{
"ads": [{
"total": 0,
"page": 1
}],
"member": [{
"memberId": "649991",
"displayName": "",
"email": "hasaxxx@hotodeal.com",
"memberStatus": "Y",
"smiId": "7aa205ea-7aa2-7aa2-7aa2-7aa205eac183",
"facebookId": "100001412016857",
"registerDate": null,
"emailConfirmed": false,
"smsConfirmed": false,
"facebookConfirmed": false,
"lineId": null,
"wechatId": null,
"displayImage": "",
"firstName": "Hasadin",
"lastName": "Pankran",
"telephone": "",
"mobile": null
}]
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.