我从api得到响应,但是此响应可以是任何类型的json。 我需要获取数据并将其打印在csv上,是否可以将json转换为动态对象并对其进行迭代,还是有其他方法可以实现?
我的json响应是:
{
"A":{
"B":[
{
"C":"data"
"E":"data"
"G":{
"H":[
{"I":"data"},
{...},
{...}
]
}
},
{...},
{...},
{...}
]
}
}
,后者可能是
{
"A":{
"B":[
{
"C":"data"
"E":"data"
"G":{
"H":[
{"I":"data"},
{...},
{...},
{"K":[
{"w":"data"},
{...},
{...},
{"d":[
{"d":"data"},
{...},
{"d":[
{"h","data"},
{...},
{...}
]}
]}
]}
]
}
},
{...},
{...},
{...}
]
}
}
答案 0 :(得分:0)
使用Cinchoo ETL-可用于解析json并将其转换为CSV的开源库
string json = @"
{
""name"":""John"",
""age"":30,
""cars"": {
""car1"":""Ford"",
""car2"":""BMW"",
""car3"":""Fiat"",
""Country"": [
""USA"",
""Mexico""
]
}
}";
StringBuilder csv = new StringBuilder();
using (var p = ChoJSONReader.LoadText(json)
.WithJSONPath("$")
)
{
using (var w = new ChoCSVWriter(csv)
.WithFirstLineHeader()
)
{
w.Write(p);
}
}
Console.WriteLine(csv.ToString());
输出:
name,age,cars_car1,cars_car2,cars_car3,cars_Country_0,cars_Country_1
John,30,Ford,BMW,Fiat,USA,Mexico
免责声明:我是这个图书馆的作者。