C# Json Convert any dynamic object to key value pairs

丶灬走出姿态 提交于 2019-12-06 17:29:31

Try this:

var json = File.ReadAllText("test.txt");
var obj = JObject.Parse(json);

var result = obj.Descendants()
    .OfType<JProperty>()
    .Select(p => new KeyValuePair<string, object>(p.Path,
        p.Value.Type == JTokenType.Array || p.Value.Type == JTokenType.Object
            ? null : p.Value));

foreach (var kvp in result)
    Console.WriteLine(kvp);

It gives you:

[firstName, John]
[lastName, Smith]
[isAlive, True]
[age, 25]
[address, ]
[address.streetAddress, 21 2nd Street]
[address.city, New York]
[address.state, NY]
[address.postalCode, 10021-3100]
[phoneNumbers, ]
[phoneNumbers[0].type, home]
[phoneNumbers[0].number, 212 555-1234]
[phoneNumbers[1].type, office]
[phoneNumbers[1].number, 646 555-4567]
[phoneNumbers[2].type, mobile]
[phoneNumbers[2].number, 123 456-7890]
[children, ]
[spouse, ]

I believe you will be able to make Replace in the path.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!