Intenté crear una cadena json de acuerdo con la sintaxis de wikipedia. Creé una cadena json con el siguiente código:

        var data = [];
        
        data.push(
            {
                "firstName": "John",
                "lastName": "Smith",
                "isAlive": true,
                "age": 27,      
            });
            
        var addressdata = [];   

        addressdata.push(
                    {
                        "streetAddress": "21 2nd Street",
                        "city": "New York",
                        "state": "NY",
                        "postalCode": "10021-3100"
                    });
        
        data.push(
            {
                "address" : addressdata
            }
        );      

La cadena es la cadena json correcta. Sin embargo, la estructura json contiene algunos anidamientos innecesarios, como se muestra en las Figuras 1 y 2 a continuación. Más precisamente, hay llaves sobrantes para el bloque de direcciones y la cadena también se incluye entre llaves en lugar de llaves. Entonces, ¿qué estoy haciendo mal? ¿Cómo puedo evitar este anidamiento innecesario y obtener la estructura que se muestra en la Fig. 3?

ingrese la descripción de la imagen aquí Figura 1

ingrese la descripción de la imagen aquí Figura 2

ingrese la descripción de la imagen aquí Fig. 3

La cadena se genera con jsonData : data, en la solicitud Ajax.

1
zuriosam 22 ene. 2021 a las 00:09

1 respuesta

La mejor respuesta

Está utilizando una lista para la variable data. Es por eso que obtiene corchetes al principio y al final del cuerpo JSON. Para superar este problema, puede declarar todo el cuerpo JSON en la variable data como:

data = {
  "firstname": "test",
  (...)
  "address": [{
    "streetAddress": "test"
    (...)
  }]
}
2
Guldborg92 21 ene. 2021 a las 21:35