在动态 c# 数组中使用 json 转换 Web 响应结果
本文关键字:转换 json Web 响应 结果 动态 数组 | 更新日期: 2023-09-27 18:34:57
我得到以下 Json 格式的网络响应(示例(
{
"result":{
"Student1":{
"Age":"15",
"School":"ABC"
},
"Student2":{
"Age":13,
"School":"XYZ"
},
"Student3":{
"Age":14,
"School":"123"
}
}
}
我得到的学生 1、学生 2 等的结果是动态的。这意味着当我向学生发送请求时,我将只得到这些学生的响应结果。
我想以动态的方式捕捉这个结果。
我想创建一个包含key
学生和年龄value
的数组,以便所有学生都可以存储为keys
,年龄存储为values
对。
然后,我想根据键值对将这些值分配给应用程序中的其他变量。例如,只要存在 student1,年龄值都应分配给该变量。
您可以使用
出色的 Json.Net 库来反序列化您的 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();
}
完整演示在这里: https://dotnetfiddle.net/joEimE