我正在创建软件,用户可以在其中创建和加载配置文件以填充文本框。配置文件中包含的名称和其他信息存储在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”(如果存在)。
答案 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();