ホームページ > バックエンド開発 > C++ > ネストされた JSON プロパティを単純な C# プロパティにマッピングする方法

ネストされた JSON プロパティを単純な C# プロパティにマッピングする方法

Patricia Arquette
リリース: 2025-01-24 22:57:11
オリジナル
570 人が閲覧しました

How to Map Nested JSON Properties to Simple C# Properties?

JSONサブアトリブをC#オブジェクトにマッピングするシンプルな属性

はじめに

newtonsoft.jsonでカスタマイズされたバックシーケーションの動作を作成することは、カスタム属性とコンバーターによって実現できます。これにより、JSONオブジェクトのサブアトリビュートを、対応するオブジェクトを持っていなくても、C#クラスの単純な属性にマッピングできます。

補助方法を使用してください

追加の属性のみが必要な場合は、JSONをjobjectとして解決し、クラスをtoobject()で埋め、SelectToken()を使用して追加の属性を抽出する簡単な方法です。たとえば、

カスタムjsonConverter

<code class="language-csharp">string json = @"
{
    ""name"" : ""Joe Shmoe"",
    ""age"" : 26,
    ""picture"":
    {
        ""id"": 123456,
        ""data"":
        {
            ""type"": ""jpg"",
            ""url"": ""http://www.someplace.com/mypicture.jpg""
        }
    }
}";

JObject jo = JObject.Parse(json);
Person p = jo.ToObject<Person>();
p.ProfilePicture = (string)jo.SelectToken("picture.data.url");</code>
ログイン後にコピー
を作成します より複雑なソリューションについては、上記のテクノロジーを使用してJSONPROPERTY属性をマークしたすべての属性を処理するカスタムJSONConverterを作成できます。 JSonConverは、反射を使用して属性を見つけ、それらを正しいJSONパスにマッピングし、それに応じて属性を入力できます。

関連するカスタムコンバーター

[jsonConverter]プロパティを使用して、コンバーターをターゲットクラスに関連付けます。その後、[JSONPROPERTY]プロパティを必要な属性に適用し、属性名としてJSONパスを指定できます。
<code class="language-csharp">class JsonPathConverter : JsonConverter
{
    // ReadJson 实现在此处...
}</code>
ログイン後にコピー

これらの属性を使用した後、通常どおりJSONを導出でき、マッピングは自動的に発生します。

以上がネストされた JSON プロパティを単純な C# プロパティにマッピングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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