wake-up-neo.com

Zugriffselemente in json-Objekten wie ein Array

Mögliches Duplizieren:
Ich habe eine verschachtelte Datenstruktur/JSON. Wie kann ich auf einen bestimmten Wert zugreifen?

Ich habe ein Json-Objekt wie das folgende:

[
  ["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"]
]

Es besteht aus 4 "Grundstücksebenen" (Stadt, Datum, Beschreibung und Koordinaten).

Ich möchte auf diese Ebenen wie in einem Array wie dem folgenden zugreifen:

var coordinates = jsonObject[4];

Das funktioniert offensichtlich nicht, also meine Frage, wie kann ich das machen?

Muss ich es entschlüsseln oder so und wenn ja wie?

11
holyredbeard

Ich habe mit JSON.parse einen einfachen Weg gefunden, dieses Problem zu lösen.

Nehmen wir an, der Json ist innerhalb der Variablen 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"]
]

Die Lösung ist folgende:

var parsedData = JSON.parse(jsontext);

Jetzt kann ich auf die Elemente folgendermaßen zugreifen:

var cities = parsedData[0];
23
holyredbeard

Ihr scheint ein Multi-Array zu sein, kein JSON-Objekt.

Wenn Sie wie ein Array auf das Objekt zugreifen möchten, müssen Sie eine Art Schlüssel/Wert verwenden, z.

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"]
}

und greifen Sie mit:

JSONObject.city[0] // => Blankaholm
JSONObject.date[1] // => 2012-10-22

and so on...

oder

JSONObject['city'][0] // => Blankaholm
JSONObject['date'][1] // => 2012-10-22

and so on...

oder, wenn Sie Ihre Struktur nicht ändern möchten, können Sie Folgendes tun:

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
4
Ragnarokkr

Ich habe einige Syntaxfehler bemerkt, aber ansonsten sollte es gut funktionieren:

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
2
Jeffrey Sweeney
var coordinates = [jsonObject[3][0], 
                   jsonObject[3][0],
                   jsonObject[4][1], 
                   jsonObject[4][1]];
0
Paolo