The json string has additional message as below,I'll extract the data part and convert it to DataTable via JObject,JToken,Jarray in NewtonSoft.Json.
{"code":0,"msg":"","data":[{"Id":1,"Name":"Fred","Age":33,"Title":"CEO"},{"Id":2,"Name":"Fred2","Age":34,"Title":"CFO"},{"Id":3,"Name":"Fred3","Age":35,"Title":"CTO"}]}
static DataTable ConvertJsonFileToDt(string jsonValue) { DataTable dt = new DataTable(); if(string.IsNullOrEmpty(jsonValue)) { return dt; } JObject jObj = JObject.Parse(jsonValue); JToken jTokenData = jObj["data"]; JArray srcArray = JArray.FromObject(jTokenData); JArray targetArray = new JArray(); foreach(JObject row in srcArray.Children<JObject>()) { var cleanRow = new JObject(); foreach(JProperty column in row.Properties()) { if(column.Value is JValue) { cleanRow.Add(column.Name, column.Value); } } targetArray.Add(cleanRow); } dt = JsonConvert.DeserializeObject<DataTable>(targetArray.ToString()); return dt; }
Or it is just a serialized json string which is far more easier.
[{"Name":"Fred1","Age":33,"Id":1},{"Name":"Fred2","Age":34,"Id":2},{"Name":"Fred3","Age":35,"Id":3}]
static void DynamicJson() { var obj = new[] { new {Name="Fred1",Age=33,Id=1}, new {Name="Fred2",Age=34,Id=2}, new {Name="Fred3",Age=35,Id=3} }; var jsonValue = JsonConvert.SerializeObject(obj); DataTable dt = JsonConvert.DeserializeObject<DataTable>(jsonValue); }
原文链接: https://www.cnblogs.com/Fred1987/p/13883953.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/401904
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!