将嵌套JSON反序列化到C#类
将JSON响应反序列化为C#类,关键在于使类结构与整个JSON数据相匹配。以下是如何反序列化给定JSON的解决方案:
JSON结构:
<code>{ "results": { "jobcodes": { "1": { ... }, "2": { ... }, ... } } }</code>
问题:
您没有考虑嵌套“jobcodes”对象中动态键(“1”和“2”)。
解决方案:
要处理动态键的对象,请使用Dictionary<string, JobCode>
:
<code class="language-csharp">class Results { [JsonProperty("jobcodes")] public Dictionary<string, JobCode> JobCodes { get; set; } }</code>
完整的类结构:
<code class="language-csharp">class RootObject { [JsonProperty("results")] public Results Results { get; set; } } class JobCode { [JsonProperty("_status_code")] public string StatusCode { get; set; } [JsonProperty("_status_message")] public string StatusMessage { get; set; } [JsonProperty("id")] public string Id { get; set; } [JsonProperty("name")] public string Name { get; set; } }</code>
反序列化:
将JSON反序列化到RootObject
类:
<code class="language-csharp">RootObject obj = JsonConvert.DeserializeObject<RootObject>(jsonResponse);</code>
结果:
您可以通过访问obj.Results.JobCodes.Values
来获取List<JobCode>
。每个JobCode
都将具有来自JSON的相应属性值。
以上是如何将带有动态键的嵌套 JSON 反序列化为 C# 类?的详细内容。更多信息请关注PHP中文网其他相关文章!