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>
関連するカスタムコンバーター
[jsonConverter]プロパティを使用して、コンバーターをターゲットクラスに関連付けます。その後、[JSONPROPERTY]プロパティを必要な属性に適用し、属性名としてJSONパスを指定できます。
<code class="language-csharp">class JsonPathConverter : JsonConverter { // ReadJson 实现在此处... }</code>
これらの属性を使用した後、通常どおりJSONを導出でき、マッピングは自動的に発生します。
以上がネストされた JSON プロパティを単純な C# プロパティにマッピングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。