我以Json格式获得网络响应,其中包含以下(样本)
{
"result":{
"Student1":{
"Age":"15",
"School":"ABC"
},
"Student2":{
"Age":13,
"School":"XYZ"
},
"Student3":{
"Age":14,
"School":"123"
}
}
}
我为Student1,Student2等获得的结果是动态的。这意味着当我向学生发送请求时,我只会收到这些学生的回复结果。
我想以动态的方式捕捉这个结果
我想创建一个包含key
学生和value
年龄段的数组,以便所有学生都可以存储为keys
和年龄为values
对。>
然后我想根据键值对将这些值分配给我的应用程序中的其他变量。例如,在student1存在的任何地方,应将age的值分配给该变量。
答案 0 :(得分:0)
您可以使用优秀的Json.Net library来反序列化您的JSON。
首先,您需要创建一些这样的类来保存数据。这里需要RootObject
类中的字典,因为学生键是动态的。类(Result
,Age
和School
)内的属性名称与JSON中的相应属性名称匹配。
class RootObject
{
public Dictionary<string, Student> Result { get; set; }
}
class Student
{
public int Age { get; set; }
public string School { get; set; }
}
然后,您可以像这样反序列化JSON(其中json
是您的JSON字符串):
RootObject root = JsonConvert.DeserializeObject<RootObject>(json);
并访问以下值:
foreach (KeyValuePair<string, Student> kvp in root.Result)
{
Console.WriteLine(kvp.Key);
Console.WriteLine("Age: " + kvp.Value.Age);
Console.WriteLine("School: " + kvp.Value.School);
Console.WriteLine();
}