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
Patricia ArquetteOriginal
2025-01-24 22:57:11573Durchsuche

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>

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>
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!

Stellungnahme:
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