Json.NET (Newtonsoft.Json) - ¿Dos 'propiedades' con el mismo nombre?

Estoy codificando en C # para .NET Framework 3.5.

Estoy tratando de analizar algunos Json en un JObject.

El Json es el siguiente:

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

Cuando trato de analizar este Json en un JObject, el JObject solo sabe acerca de LargeBox. La información para SmallBox y MedBox se pierde. Obviamente, esto se debe a que está interpretando "TBox" como una propiedad, y esa propiedad se está sobrescribiendo.

Estoy recibiendo este Json de un servicio que está codificado en Delphi. Estoy tratando de crear un proxy C # para ese servicio. Del lado de Delphi, el "TBox" se entiende como eltipo del objeto que se devuelve. Las propiedades internas ("Nombre", "Longitud", "Ancho", "Altura") se entienden como propiedades regulares.

Puedo serializar y deserializar un objeto personalizado 'TBox' que tiene las propiedades Nombre, Longitud, Ancho y Altura. Esta bien.

Lo que quiero hacer es recorrer todas las secciones de TBox de tal manera que extraiga las siguientes tres cadenas Json.

Primero:

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

Segundo:

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

Tercero:

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

Una vez que tengo estas cadenas, puedo serializar y deserializar el contenido de mi corazón.

Me parece que Newtonsoft.Json es muy bueno. Realmente no quiero perder el tiempo con otros marcos si puedo evitarlo.

Cualquier ayuda sería muy apreciada.

Tengo una entrada muy limitada en cuanto a los cambios que se pueden realizar en el servidor.

Respuestas a la pregunta(2)

Su respuesta a la pregunta