/ / Variazioni della struttura di array JSON - json

Variazioni della struttura di array JSON - json

Di seguito sono riportati 3 formati di struttura di array JSON ...

Il primo, quello delineato su JSON.org, è quello con cui ho familiarità:

Formato # 1

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

Il secondo è una leggera variazione di nomigli elementi dell'array. Personalmente non mi interessa, non nominare gli elementi di un array nel codice (sono accessibili per indice), perché chiamarli in JSON?

Formato # 2

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

Quest'ultima è un'altra variazione, abbastanza simile a Formato # 2, ma ho la sensazione che questo non sia corretto perché sembra avere parentesi graffe extra in cui non appartengono.

Formato # 3

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

Di nuovo, sono sicuro che Formato # 1 è valido in quanto è il formato array JSON delineato su JSON.org. Tuttavia, che dire Formato # 2 e Formato # 3? I due sono considerati JSON validi? Se sì, da dove provengono quei formati? Non li vedo delineati su JSON.org o su Wikipedia.

risposte:

7 per risposta № 1

Sia il n. 1 che il n. 3 sono (quasi - mancano le virgole) JSON valido, ma codificano diverse strutture:

  • # 1 ti dà un schieramento di Oggetti, ciascuno con nome ed età Proprietà di stringa
  • # 3 ti dà un schieramento di Oggetti, ciascuno con un singolo Proprietà dell'oggetto, ciascuno con nome ed età Proprietà di stringa.

Il n. 2 non è valido: matrici (come definito da [ ... ]) non può contenere nomi di proprietà.


1 per risposta № 2

Soluzione per Formato # 1 Di default:

array=[];
object={};

Codice JSON:

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

Risultato JSON:

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