zoukankan      html  css  js  c++  java
  • C# extract useful information from json string with redundant message and code

    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);
            }
  • 相关阅读:
    函数作业1
    函数、装饰器、迭代器、内置方法总练习题
    疑问
    装饰器
    文件练习题1,2
    内置函数练习题和总结
    GET和POST请求的区别
    HTTP请求方法
    HTTP之状态码
    HTTP之响应消息Response
  • 原文地址:https://www.cnblogs.com/Fred1987/p/13883953.html
Copyright © 2011-2022 走看看