繁体   English   中英

如何遍历动态json c#?

[英]How can I Iterate through dynamic json c#?

我从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"},
                                {...},
                                {...}
                            ]}
                        ]}
                    ]}
                ]
            }
        },

        {...},

        {...},

        {...}
    ]
}

}

使用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

免责声明:我是这个图书馆的作者。

暂无
暂无

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

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