簡體   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