ホームページ > バックエンド開発 > C++ > Json.netを使用して構造が一致しないJSONオブジェクト配列を逆シリアル化する方法は?

Json.netを使用して構造が一致しないJSONオブジェクト配列を逆シリアル化する方法は?

DDD
リリース: 2025-01-05 08:28:38
オリジナル
555 人が閲覧しました

How to Deserialize a JSON Object Array with Mismatched Structure Using Json.net?

Json.net を使用した JSON オブジェクト配列のシリアル化

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート