13

重複の可能性:
ネストされたデータ構造/ JSONがありますが、特定の値にアクセスするにはどうすればよいですか?

以下のようなjsonオブジェクトがあります:

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

これは、4つの「プロパティレベル」(都市、日付、説明、座標)で構成されています。

私がやりたいのは、次のような配列のようにこれらのレベルにアクセスできるようにすることです。

var coordinates = jsonObject[4];

これは明らかに機能しないので、私の質問はどうすればそれを行うことができますか?

それか何かをデコードする必要がありますか?もしそうなら、どのように?

4

4 に答える 4

24

JSON.parseを使用して、これを解決する簡単な方法を見つけました。

以下の json が変数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"]
]

解決策は次のとおりです。

var parsedData = JSON.parse(jsontext);

これで、次の方法で要素にアクセスできます。

var cities = parsedData[0];
于 2013-01-18T22:13:34.657 に答える
4

JSONオブジェクトではなく、マルチ配列のようです。

配列のようなオブジェクトにアクセスする場合は、次のようなキー/値を使用する必要があります。

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

そしてそれにアクセスします:

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

and so on...

また

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

and so on...

または、最後の手段として、構造を変更したくない場合は、次のようにすることができます。

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
于 2013-01-18T22:01:31.740 に答える
2

いくつかの構文エラーに気付きましたが、それ以外は問題なく動作するはずです:

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
于 2013-01-18T22:00:21.860 に答える
0
var coordinates = [jsonObject[3][0], 
                   jsonObject[3][0],
                   jsonObject[4][1], 
                   jsonObject[4][1]];
于 2013-01-18T22:06:18.963 に答える