属性を使用したJSON Child Property Mappingのアドレス指定
この記事では、属性を使用してネストされたJSONプロパティをよりシンプルなクラスプロパティにマッピングし、JSONの脱代の柔軟性を向上させます。 標準的な敏aserializationによる課題:newtonsoft.jsonの
メソッドはJSONをオブジェクトに効果的に変換しますが、複雑なJSON構造内の子プロパティを単純なクラスプロパティにマッピングするための直接的なサポートがありません。DeserializeObject
ソリューション:
2つの効果的なアプローチが表示されます:
メソッド1:Jobject and Property Selection:
JSON文字列を。
に解析しますJObject
ToObject()
SelectToken()
メソッド2:カスタムjsonConverter:
<code class="language-csharp">string json = "{ \"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
JsonConverter
属性を使用してターゲットクラスを飾ります。ReadJson
属性を使用して、属性の名前として目的のプロパティパスを指定します。
JObject
[JsonConverter]
[JsonProperty]
両方の手法は、ネストされたJSONプロパティをよりシンプルなクラスプロパティにマッピングするためのソリューションを提供し、JSONの降下の柔軟性を向上させます。 最適なアプローチは、プロジェクト固有のニーズと好みに依存します
以上が属性はJSON Child Property Mappingの課題を解決できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。