ホームページ >バックエンド開発 >C++ >JsonConvert.DeserializeObject を使用して JSON を C# POCO クラスに適切に逆シリアル化する方法

JsonConvert.DeserializeObject を使用して JSON を C# POCO クラスに適切に逆シリアル化する方法

Susan Sarandon
Susan Sarandonオリジナル
2025-01-15 11:17:48441ブラウズ

How to Properly Deserialize JSON to a C# POCO Class Using JsonConvert.DeserializeObject?

JsonConvert.DeserializeObject を使用して JSON を C# POCO クラスに逆シリアル化します

質問:

JsonConvert.DeserializeObject を使用して JSON データを C# POCO クラスに逆シリアル化しようとすると、特定のプロパティの誤った逆シリアル化が原因で例外がスローされます。

答え:

JsonConvert.DeserializeObject を使用して JSON を POCO クラスに正しく逆シリアル化するには、クラス内のプロパティ名が JSON データ内のプロパティ名と一致することを確認することが重要です。さらに、次の手順が必要になる場合があります:

  1. JsonProperty 属性を使用します: JsonProperty 属性を使用して、特定のクラス属性に対応する JSON 属性名を指定します。これは、JSON プロパティ名がクラス プロパティ名と異なる場合に特に便利です。
  2. 属性の型を検討します: POCO クラスの各属性のデータ型が、JSON データの予期される型と一致していることを確認します。たとえば、JSON データに配列が含まれている場合、POCO クラスの対応するプロパティはリストとして宣言する必要があります。

例:

User クラスの Accounts プロパティを JSON オブジェクトから逆シリアル化する必要がある次の例を考えてみましょう:

<code class="language-csharp">public class User
{
    [JsonProperty("accounts")]
    public Account Accounts { get; set; }

    // 其他User属性此处省略,以简洁起见
}

public class Account
{
    public string github { get; set; }
}</code>

JsonProperty 属性を使用し、Accounts プロパティを特定の Account オブジェクトとして宣言すると、逆シリアル化でそのプロパティの JSON オブジェクトが正しく処理されます。

以上がJsonConvert.DeserializeObject を使用して JSON を C# POCO クラスに適切に逆シリアル化する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。