Heim >Backend-Entwicklung >C++ >Wie deserialisiere ich ein JSON-Objektarray mit nicht übereinstimmender Struktur mithilfe von Json.net?

Wie deserialisiere ich ein JSON-Objektarray mit nicht übereinstimmender Struktur mithilfe von Json.net?

DDD
DDDOriginal
2025-01-05 08:28:38585Durchsuche

How to Deserialize a JSON Object Array with Mismatched Structure Using Json.net?

JSON-Objektarray mit Json.net serialisieren

Es kann vorkommen, dass eine gewünschte JSON-Struktur geringfügig vom erwarteten Format abweicht. Dieses Problem tritt beispielsweise im speziellen Fall eines JSON-Objektarrays auf, wie unten gezeigt:

[
   {
      "customer":{
         ...
      }
   },
   {
      "customer":{
         ...
      }
   }
]

Leider erwartet Json.net eine konventionellere Struktur wie diese:

{
    "customer": {
        ...
    }
}

Wie können wir also diese Inkonsistenz in Einklang bringen?

Die Lösung liegt in der Erstellung eines benutzerdefinierten Modells, das mit der Realität übereinstimmt JSON-Struktur. Durch die Definition von Klassen wie CustomerJson und Customer können wir die JSON-Eigenschaften bestimmten Feldern zuordnen:

public class CustomerJson
{
    [JsonProperty("customer")]
    public Customer Customer { get; set; }
}

public class Customer
{
    [JsonProperty("first_name")]
    public string Firstname { get; set; }

    [JsonProperty("last_name")]
    public string Lastname { get; set; }

    ...
}

Mit diesem benutzerdefinierten Modell können wir den bereitgestellten JSON mühelos deserialisieren, indem wir Folgendes verwenden:

JsonConvert.DeserializeObject<List<CustomerJson>>(json);

Umfassende Informationen zur JSON-Serialisierung und -Deserialisierung finden Sie schließlich in der offiziellen Dokumentation.

Das obige ist der detaillierte Inhalt vonWie deserialisiere ich ein JSON-Objektarray mit nicht übereinstimmender Struktur mithilfe von Json.net?. 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