Dupliquer possible:
J'ai une structure de données imbriquée/JSON, comment puis-je accéder à une valeur spécifique?
J'ai un objet json, comme celui ci-dessous:
[
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"], ["57.893162","16.406090"]
]
Il se compose de 4 "niveaux de propriété" (ville, date, description et coordonnées).
Ce que je veux faire, c'est pouvoir accéder à ces niveaux comme dans un tableau comme ceci:
var coordinates = jsonObject[4];
Cela ne fonctionne évidemment pas, alors ma question est: comment puis-je le faire?
Dois-je le décoder ou quelque chose d'autre, et si oui comment?
J'ai trouvé un moyen simple de résoudre ce problème, avec l'utilisation de JSON.parse.
Supposons que le json ci-dessous est à l'intérieur de la variable jsontext .
[
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"], ["57.893162","16.406090"]
]
La solution est la suivante:
var parsedData = JSON.parse(jsontext);
Maintenant, je peux accéder aux éléments de la manière suivante:
var cities = parsedData[0];
Le your semble être un multi-tableau, pas un objet JSON.
Si vous souhaitez accéder à l'objet comme un tableau, vous devez utiliser une sorte de clé/valeur, telle que:
var JSONObject = {
"city": ["Blankaholm, "Gamleby"],
"date": ["2012-10-23", "2012-10-22"],
"description": ["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
"lat": ["57.586174","16.521841"],
"long": ["57.893162","16.406090"]
}
et y accéder avec:
JSONObject.city[0] // => Blankaholm
JSONObject.date[1] // => 2012-10-22
and so on...
ou
JSONObject['city'][0] // => Blankaholm
JSONObject['date'][1] // => 2012-10-22
and so on...
ou, en dernier recours, si vous ne voulez pas changer votre structure, vous pouvez faire quelque chose comme ça:
var JSONObject = {
"data": [
["Blankaholm, "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"],
["57.893162","16.406090"]
]
}
JSONObject.data[0][1] // => Gambleby
J'ai remarqué quelques erreurs de syntaxe, mais à part ça, ça devrait marcher:
var arr = [
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har."], //<- syntax error here
["57.586174","16.521841"], ["57.893162","16.406090"]
];
console.log(arr[4]); //["57.893162","16.406090"]
console.log(arr[4][0]); //57.893162
var coordinates = [jsonObject[3][0],
jsonObject[3][0],
jsonObject[4][1],
jsonObject[4][1]];