Heim > Backend-Entwicklung > C++ > Wie ordne ich verschachtelte JSON-Eigenschaften einfachen C#-Eigenschaften zu?

Wie ordne ich verschachtelte JSON-Eigenschaften einfachen C#-Eigenschaften zu?

Patricia Arquette
Freigeben: 2025-01-24 22:57:11
Original
570 Leute haben es durchsucht

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

Das einfache Attribut, das das JSON -Sub -Attribute auf das C# -Objekt

ordnet

Einführung

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren
Verwenden Sie die Eigenschaft [jsonConverter], um den Konverter der Zielklasse zu assoziieren. Sie können dann die Eigenschaft [jsonProperty] auf die erforderlichen Attribute anwenden und den JSON -Pfad als Attributnamen angeben.

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage