显示每个对象的名称

时间:2019-07-09 18:35:53

标签: c# json object

我正在创建软件,用户可以在其中创建和加载配置文件以填充文本框。配置文件中包含的名称和其他信息存储在JSON文件中。配置文件名称可以包含用户输入的任何文本。 因此,为此,我试图获取JSON文件的每个对象名称(=每个配置文件名称)以在树状视图中显示它们,但我得到的只是它们的内容。

我有一个包含两个对象的JSON文件:

[
    {
        "profile1": {
            //Some informations 1
        },
        "profile2": {
            //Some informations 2
        }
    }
]

就目前而言,我有一些代码可以让我获取给定标签的值,但是我找不到找到每个对象名称的方法:

using (StreamReader r = File.OpenText(path))
                {
                    string json = r.ReadToEnd();
                    dynamic array = JsonConvert.DeserializeObject(json);
                    foreach (var item in array)
                    {
                        debug_tb.Text += item.profile1; //Gives me each values of the "profile1 object"
                    }

                }

因此,我要显示的是显示“ profile1”,“ profile2”和“ profile3”(如果存在)。

1 个答案:

答案 0 :(得分:1)

您的问题是您的JSON是具有一个对象的数组。因此,您可以首先简化JSON:

{
    "profile1": {
        //Some informations 1
    },
    "profile2": {
        //Some informations 2
    }
}

然后,您可以轻松地遍历JSON中的每个项目并获取其Name

    dynamic array = JsonConvert.DeserializeObject("{ \"profile1\": { }, \"profile2\": { } }");
    foreach (var item in array)
    {
        debug_tb.Text += item.Name; //Gives the name of the object
    }
    Console.WriteLine(text);
    Console.ReadLine();