必要な 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 中国語 Web サイトの他の関連記事を参照してください。