ホームページ > バックエンド開発 > C++ > ネストされた JSON を型指定された C# オブジェクトに逆シリアル化するにはどうすればよいですか?

ネストされた JSON を型指定された C# オブジェクトに逆シリアル化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-25 12:11:09
オリジナル
435 人が閲覧しました

How Can I Deserialize Nested JSON into Typed C# Objects?

型付き C# オブジェクトを使用した入れ子になった JSON の逆シリアル化

入れ子になった JSON をフラットな Dictionary に逆シリアル化する C# で System.Text.Json を使用すると、ほとんどのプロパティが JsonElement 型になります。 JSON プロパティ型に基づいてより具体的な C# 型を実現するには、カスタム JsonConverter が必要です。

ObjectAsPrimitiveConverter

次のコードは、ObjectAsPrimitiveConverter という名前のカスタム JsonConverter を提供します。

public class ObjectAsPrimitiveConverter : JsonConverter<object>
{
    // ... (converter implementation)
}
ログイン後にコピー

コンバーター構成

コンバーターを構成するには、目的の FloatFormat (double または 10 進数)、UnknownNumberFormat (error または JsonElement)、および ObjectFormat (ExpandoObject または Dictionary) を指定します。

var options = new JsonSerializerOptions
{
    Converters = { new ObjectAsPrimitiveConverter(...) },
    WriteIndented = true,
};
ログイン後にコピー

への逆シリアル化オブジェクト

ネストされた JSON をオブジェクト (または ExpandoObject を使用する場合は動的) に逆シリアル化するには、次を使用します。

dynamic d = JsonSerializer.Deserialize<dynamic>(json, options);
ログイン後にコピー

カスタマイズ

コンバーターは、さまざまな数値型とオブジェクト形式をサポートするようにカスタマイズできます。さらに、サポートされていない JSON 番号をより適切に処理するように拡張することもできます。

結論

カスタム JsonConverter を実装することで、ネストされた JSON オブジェクトの型固有の逆シリアル化を実現できます。各プロパティに適切な C# 型を使用して階層データ構造に変換します。

以上がネストされた JSON を型指定された C# オブジェクトに逆シリアル化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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