如何在 c# 中解析具有动态子对象名称的 JSON 对象
本文关键字:对象 动态 JSON | 更新日期: 2023-09-27 17:57:14
我已经在这个:sample中问过了
但现在我有一个不同的 json 格式:
{
"response": "success",
"example" :{
"001":{
"ID":"001",
"Name":"Test1"
},
"002":{
"ID": "002",
"Name": "test2"
}
},
"reference": "google.com"
}
我的问题再次是我如何访问Name
:
您
所需要的只是将几个string
成员添加到您的Response
类中。
大多数情况下,代码根本没有改变。
您甚至可以使用前面的代码解析此对象 - 只会丢失response
和reference
值。
public class Response
{
public string response { get; set; }
public Dictionary<string, ExampleObj> example { get; set; }
public string reference { get; set;}
}
public class ExampleObj {
public string ID { get; set; }
public string Name { get; set; }
}
// Somewhere in code
string jsonString = "{ '"response'": '"success'", '"example'" :{ '"001'":{ '"ID'":'"001'", '"Name'":'"Test1'" }, '"002'":{ '"ID'": '"002'", '"Name'": '"test2'" } }, '"reference'": '"google.com'"}";
var obj = JsonConvert.DeserializeObject<Response>(jsonString);
foreach (var keyValuePair in obj.example)
{
Console.WriteLine("That's a {0}", keyValuePair.Key);
Console.WriteLine("It's name is {0}", keyValuePair.Value.Name);
}
Console.WriteLine("And, Hey! That's a reference '{0}' and response '{1}'", obj.reference, obj.response);
我希望您不会在每次需要向类中添加单个变量时都提出问题。你应该尝试自己理解它:阅读文档,谷歌特定的理论问题,而不是实践解决方案,尝试自己做。这是成为软件工程师的唯一途径。