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 очень хорош. Я действительно не хочу баловаться с другими фреймворками, если смогу избежать этого.
Любая помощь будет принята с благодарностью.
У меня очень ограниченный вклад в изменения, которые могут быть сделаны на сервере.