Json.NET (Newtonsoft.Json) - Zwei 'Eigenschaften' mit demselben Namen?

Ich programmiere in C # für .NET Framework 3.5.

Ich versuche, einige Json in ein JObject zu analysieren.

The Json ist wie folgt:

{
    "TBox": {
        "Name": "SmallBox",
        "Length": 1,
        "Width": 1,
        "Height": 2 },
    "TBox": {
        "Name": "MedBox",
        "Length": 5,
        "Width": 10,
        "Height": 10 },
    "TBox": {
        "Name": "LargeBox",
        "Length": 20,
        "Width": 20,
        "Height": 10 }
}

Wenn ich versuche, diesen Json in einem JObject zu analysieren, kennt das JObject nur LargeBox. Die Informationen für SmallBox und MedBox gehen verloren. Dies liegt offensichtlich daran, dass "TBox" als Eigenschaft interpretiert wird und diese Eigenschaft überschrieben wird.

Ich erhalte diesen Json von einem Dienst, der in Delphi codiert ist. Ich versuche, einen C # -Proxy für diesen Dienst zu erstellen. Auf der Delphi-Seite wird die "TBox" als das @ verstandAr des zurückgegebenen Objekts. Die inneren Eigenschaften ("Name", "Länge", "Breite", "Höhe") werden dann als reguläre Eigenschaften verstanden.

Ich kann ein benutzerdefiniertes 'TBox'-Objekt mit den Eigenschaften Name, Length, Width und Height serialisieren und deserialisieren. Das ist gut

Ich möchte alle TBox-Abschnitte so durchgehen, dass die folgenden drei Json-Zeichenfolgen extrahiert werden.

Zuerst

{
    "Name": "SmallBox",
    "Length": 1,
    "Width": 1,
    "Height": 2 }

Zweite

{
    "Name": "MedBox"
    "Length": 5,
    "Width": 10,
    "Height": 10 }

Dritte

{
    "Name": "LargeBox"
    "Length": 20,
    "Width": 20,
    "Height": 10 }

obald ich diese Zeichenfolgen habe, kann ich nach Herzenslust serialisieren und deserialisiere

Ich finde Newtonsoft.Json sehr gut. Ich möchte wirklich nicht mit anderen Frameworks herumspielen, wenn ich das vermeiden kann.

Jede Hilfe wäre sehr dankbar.

Ich habe nur sehr begrenzte Informationen zu Änderungen, die am Server vorgenommen werden können.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage