Das einfache Attribut, das das JSON -Sub -Attribute auf das C# -Objekt
Erstellen Sie ein angepasstes zurück -sequentielles Verhalten in newtonsoft.json kann durch benutzerdefinierte Attribute und Konverter erreicht werden. Auf diese Weise können Sie die Sub -Attributes des JSON -Objekts den einfachen Attributen der C# -Klasse abbilden, auch wenn sie nicht über das entsprechende Objekt verfügen.
Verwenden Sie die Hilfsmethode
Wenn Sie nur ein zusätzliches Attribut benötigen, besteht eine einfache Methode darin, Ihren JSON als Jobject zu beheben, Ihre Klasse mit toobject () zu füllen und dann SelectToken () zu verwenden, um die zusätzlichen Attribute zu extrahieren. Zum Beispiel:
Erstellen Sie einen benutzerdefinierten 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>
Für kompliziertere Lösungen können Sie einen benutzerdefinierten JsonConverter erstellen, der die oben genannte Technologie verwendet, um alle mit JsonProperty -Attributen gekennzeichneten Attribute zu verarbeiten. JsonConver kann Reflexion verwenden, um Attribute zu finden, sie auf den richtigen JSON -Pfad zuzuordnen und die Attribute entsprechend zu füllen.
Der zugeordnete benutzerdefinierte Konverter
<code class="language-csharp">class JsonPathConverter : JsonConverter { // ReadJson 实现在此处... }</code>
Nachdem Sie diese Attribute verwendet haben, können Sie JSON wie gewohnt ableiten, und die Zuordnung wird automatisch erfolgen.
Das obige ist der detaillierte Inhalt vonWie ordne ich verschachtelte JSON-Eigenschaften einfachen C#-Eigenschaften zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!