2017-10-17 11 views
0

内JSON配列から座標を取得する方法をどのように私は、このJSON応答からx座標とy座標を取得します:ではJavaScript:辞書

{ 
    "spatialReference": { 
     "wkid": 4326, 
     "latestWkid": 4326 
    }, 
    "candidates": [ 
    { 
     "address": "Berlin", 
     "location": { 
      "x": 13.376910000000066, 
      "y": 52.516040000000032 
      }, 
    } 
} 

私はJSON.parseを使用する必要がありますか?配列の中にある辞書の内部にある配列を扱う方法がわからない。

+1

を返すために起こっている

console.log(jobs.candidates[0]) 

あなたが試すことに注意してください:配列[i]は.candidates [J] .locationを。 xとyは同じです。 [i]は配列のインデックス、jは候補のインデックスです。入れ子になったループが必要です。 – dpetrini

+0

あなたのデータ構造によって異なります。あなたはそれをもっとはっきりと記述することができます – Andrea

答えて

0

indexed collectionsのドキュメントを参照してください。次のように

いずれにせよ、あなたは座標にアクセスすることができます。

var response = { 
    "spatialReference": { 
    "wkid": 4326, 
    "latestWkid": 4326 
    }, 
    "candidates": [{ 
    "address": "Berlin", 
    "location": { 
     "x": 13.376910000000066, 
     "y": 52.516040000000032 
    } 
    }] 
}; 

var coordinates = response["candidates"][0]["location"]; 
1

は、あなたの変数名はdataであると仮定します。その後

あなたがあなたのdataが配列

であれば、すべての

for (var i = 0; i< data.candidates.length; i++){ 
    console.log(data.candidates[i].location.x) 
    console.log(data.candidates[i].location.y) 
} 

にアクセスしたい場合は、最初のインデックス

console.log(data.candidates[0].location.x) 
console.log(data.candidates[0].location.y) 

を印刷したい場合は

for (var j = 0; j < data.length; j++) { 
    for (var i = 0; i < data[j].candidates.length; i++) { 
    console.log(data[j].candidates[i].location.x) 
    console.log(data[j].candidates[i].location.y) 
    } 
} 
0

JSON.parseを使用すると、この文字列をJSオブジェクトに変換できます。

次に、どのオブジェクトが内部にあるのかの問題です。

文字列を変数名jobsに賞賛しているとします。

var jobs = JSON.parse(myDataObject) 

次の行は、オブジェクトの各部分にアクセスする方法を示します。

console.log(jobs.spatialReference.wkid) //4326 
console.log(jobs.candidates[0]location.x) //13.376910000000066 

あなたが言っている場合、これはオブジェクト全体

{ 
    "address": "Berlin", 
    "location": { 
     "x": 13.376910000000066, 
     "y": 52.516040000000032 
    } 
    }