Heim >Backend-Entwicklung >C++ >Kann ich Kinder -JSON -Eigenschaften unter Verwendung von Attributen auf Klasseneigenschaften zuordnen?
Verwenden Sie das Attribut, um auf die Sub -attributes in JSON zuzugreifen?
von newtonsoft.json ermöglicht DeserializeObject<T>
, die ursprünglichen JSON -Daten dem Klassenattribut zuzuordnen. Was soll ich tun, wenn Sie jedoch die Sub -Attributes komplexer JSON -Objekte auf die einfachen Attribute der Klasse zuordnen möchten, was soll ich tun? [DataMember(Name = "raw_property_name")]
<code class="language-json">{ "picture": { "id": 123456, "data": { "type": "jpg", "url": "http://www.someplace.com/mypicture.jpg" } } }</code>Sie sind möglicherweise nur an
Attributen des -Objekts interessiert, sodass Sie in der Klasse keine komplexen Objekte erstellen möchten. Kannst du es einfach so reflektieren? picture
url
<code class="language-csharp">[DataMember(Name = "picture.data.url")] public string ProfilePicture { get; set; }</code>
durchzuführen Eine einfache Methode besteht darin, JSON als zu analysieren. Verwenden Sie dann
, um Ihre Klasse aus zu füllen. Um zusätzliche Attribute zu extrahieren, verwenden Sie bitte JObject
: ToObject()
JObject
SelectToken()
angepasste JsonConverr
<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>
oder Sie können ein benutzerdefiniertes erstellen, um das Attribut zu aktivieren, um das Attribut entsprechend Ihren Anforderungen zu mapporieren:
JsonConverter
Die Verwendungsmethode lautet wie folgt: JsonProperty
<code class="language-csharp">class JsonPathConverter : JsonConverter { // ... 实现代码在问题答案中提供 ... }</code>Ermöglicht Ihnen das Attribut -basierte Zuordnung für Sub -Attributes, um eine größere Flexibilität bei der Serialisierung von JSON -Daten in Klassenobjekte zu bieten.
Das obige ist der detaillierte Inhalt vonKann ich Kinder -JSON -Eigenschaften unter Verwendung von Attributen auf Klasseneigenschaften zuordnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!