Json.NET (Newtonsoft.Json) - два «свойства» с одинаковым именем?

Я пишу в C # для .NET Framework 3.5.

Я пытаюсь проанализировать некоторые Json для объекта JO.

Json выглядит следующим образом:

{
    "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 }
}

Когда я пытаюсь проанализировать этот Json для JObject, JObject знает только о LargeBox. Информация для SmallBox и MedBox потеряна. Очевидно, это потому, что он интерпретирует «TBox» как свойство, и это свойство перезаписывается.

Я получаю этот Json от службы, которая закодирована в Delphi. Я пытаюсь создать C # прокси для этого сервиса. С точки зрения Delphi, «TBox» понимается кактип возвращаемого объекта. Внутренние свойства («Имя», «Длина», «Ширина», «Высота») понимаются как обычные свойства.

Я могу сериализовать и десериализовать пользовательский объект TBox, который имеет свойства Name, Length, Width и Height. Все в порядке.

Я хочу пройтись по всем разделам TBox таким образом, чтобы извлечь следующие три строки Json.

Первый:

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

Во-вторых:

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

В третьих:

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

Когда у меня есть эти строки, я могу сериализовать и десериализовать в соответствии с моим сердцем.

Я считаю, что Newtonsoft.Json очень хорош. Я действительно не хочу баловаться с другими фреймворками, если смогу избежать этого.

Любая помощь будет принята с благодарностью.

У меня очень ограниченный вклад в изменения, которые могут быть сделаны на сервере.

Ответы на вопрос(2)

Ваш ответ на вопрос