人们可能会遇到所需 JSON 结构与预期格式略有不同的情况。这个问题出现在 JSON 对象数组的特定情况下,例如,如下所示:
[ { "customer":{ ... } }, { "customer":{ ... } } ]
不幸的是,Json.net 需要一个更传统的结构,如下所示:
{ "customer": { ... } }
因此,我们如何调和这种不一致?
解决方案在于创建一个与实际情况相符的自定义模型JSON 结构。通过定义 CustomerJson 和 Customer 等类,我们可以将 JSON 属性映射到特定字段:
public class CustomerJson { [JsonProperty("customer")] public Customer Customer { get; set; } } public class Customer { [JsonProperty("first_name")] public string Firstname { get; set; } [JsonProperty("last_name")] public string Lastname { get; set; } ... }
使用此自定义模型,我们可以使用以下方法轻松反序列化提供的 JSON:
JsonConvert.DeserializeObject<List<CustomerJson>>(json);
最后,有关 JSON 序列化和反序列化的全面信息,请参阅官方文档。
以上是如何使用 Json.net 反序列化结构不匹配的 JSON 对象数组?的详细内容。更多信息请关注PHP中文网其他相关文章!