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 № 1Sia 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"
}
]
}