/ / JSON Variaciones de estructura de matriz - json

Variaciones de estructura de matriz JSON - json

A continuación se muestran 3 formatos de estructura JSON Array ...

El primero, el bosquejado en JSON.org, es con el que estoy familiarizado:

Formato n. ° 1

{"People": [
{
"name": "Sally",
"age": "10"
},
{
"name": "Greg",
"age": "10"
}
]}

El segundo es una pequeña variación que los nombreslos elementos de la matriz Personalmente no me importa, no se nombran elementos de una matriz en el código (se accede por índice), ¿por qué nombrarlos en JSON?

Formato n. ° 2

{"People": [
"Person1": {
"name": "Sally",
"age": "10"
},
"Person2": {
"name": "Greg",
"age": "10"
}
]}

Esta última es otra variación, bastante similar a Formato n. ° 2, pero tengo la corazonada de que este es incorrecto porque parece tener llaves adicionales donde no pertenecen.

Formato n. ° 3

{"People": [
{
"Person1": {
"name": "Sally",
"age": "10"
}
},
{
"Person2": {
"name": "Greg",
"age": "10"
}
}
]}

De nuevo, estoy seguro de que Formato n. ° 1 es válido ya que es el formato JSON Array delineado en JSON.org. Sin embargo, ¿qué pasa? Formato n. ° 2 y Formato n. ° 3? ¿Alguno de ellos se considera JSON válido? En caso afirmativo, ¿de dónde provienen esos formatos? No los veo detallados en JSON.org o en Wikipedia.

Respuestas

7 para la respuesta № 1

Ambos # 1 y # 3 son (casi - faltan comas) JSON válidos, pero codifican diferentes estructuras:

  • # 1 te da un Formación de Objetos, cada uno con nombre y edad Propiedades de cadena
  • # 3 te da un Formación de Objetos, cada uno con un solo Propiedad del objeto, cada uno con nombre y edad Propiedades de cadena.

El # 2 no es válido: matrices (como se define por [ ... ]) no puede contener nombres de propiedad.


1 para la respuesta № 2

Solución para Formato n. ° 1 Por defecto:

array=[];
object={};

Código JSON:

var Json = {
People:[]
};
Json.People.push({
"name": "Sally",
"age": "10"
});
Json.People.push({
"name": "Greg",
"age": "10"
});

Resultado JSON:

{"People": [ { "name": "Sally", "age": "10" }, { "name": "Greg", "age": "10" } ] }