繁体   English   中英

如何在C#中将嵌套JSON转换为csv?

[英]How to convert nested JSON to csv in C#?

我正在尝试使用Newtonsoft.JsonJSON以下的序列反序列化为csv但是失败了。 我无法正确定义JSON的架构,因此失败了。

输入JSON:

{
 "2017-02-11":
  {
  "Table1": [
    {
      "code": "code day1.1.1",
      "no": "no day1.1.1"
    }
  ],
  "Table2": [
    {
      "code": "code day1.2.1",
      "no": "no day1.2.1"
    },
    {
      "code": "code day1.2.2",
      "no": "no day1.2.2"
    }
  ]
 },
 "2017-02-12":
  {
  "Table1": [
    {
      "code": "code day2.1.1",
      "no": "no day2.1.1"
    },
    {
      "code": "code day2.1.2",
      "no": "no day2.1.2"
    }
  ],
  "Table2": [
    {
      "code": "code day2.2.1",
      "no": "no day2.2.1"
    }
  ]
 }
}

输出csv:

,,code,no
2017-02-11,Table1,code day1.1.1,no day1.1.1
,Table2,code day1.2.1,no day1.2.1
,,code day1.2.2,no day1.2.2
2017-02-12,Table1,code day2.1.1,no day2.1.1
,,code day2.1.2,no day2.1.2
,Table2,code day2.2.1,no day2.2.1

当我尝试使用

DataSet dataSet = Newtonsoft.Json.JsonConvert.DeserializeObject<DataSet>(content).  

它返回异常。

反序列化对象时,返回的类型需要与JSON中的对象名称相匹配的属性。

您的JSON使用日期作为对象名称,我认为这意味着这些值是动态的。 如果它们是动态的,那么我建议使用

var dynamicResults = JSON.Decode(content);

Decode返回一个动态列表类型,可以循环通过该列表,从那里可以将每个动态的结果绑定到新的DataSet类型中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM