[英]Access coordinates array from JSON object with Javascript
我正在嘗試從JSON文件獲取坐標。
JSON文件結構:
{
"parkeerlocaties": [
{
"parkeerlocatie": {
"Locatie": "{\"type\":\"Point\",\"coordinates\":[4.9032801,52.3824545]}"
}
}
我可以訪問Locatie
對象,它返回以下內容:
{"type":"Point","coordinates":[4.9032801,52.3824545]}
但是,當我嘗試從JSON文件中獲取坐標時,卻無法得到定義。
碼:
$.getJSON(parkingUrl, function(parkingData) {
pData = parkingData.parkeerlocaties;
for (var x = 0; x < pData.length; x++ ) {
ploc = parkingData["parkeerlocaties"][x]["parkeerlocatie"]["Locatie"]["coordinates"];
console.log(ploc);
};
});
};
那么,如何從JSON文件中獲取坐標?
您的Locatie
鍵指向一個字符串,而不是一個對象。 您可以使用JSON.parse()
將此字符串轉換為對象,以便隨后可以訪問coordinates
鍵。
ploc = JSON.parse(parkingData["parkeerlocaties"][x]["parkeerlocatie"]["Locatie"])["coordinates"];
因此,您的代碼應如下所示:
$.getJSON(parkingUrl, function(parkingData) {
pData = parkingData.parkeerlocaties;
for (var x = 0; x < pData.length; x++) {
ploc = JSON.parse(parkingData["parkeerlocaties"][x]["parkeerlocatie"]["Locatie"])["coordinates"];
console.log(ploc);
}
});
您應該使用JSON.parse
將JSON字符串轉換為JSON對象。
JSON.parse(parkingData.parkeerlocaties[0].parkeerlocatie.Locatie).coordinates
這里Locatie是一個JSON字符串。
$.getJSON(parkingUrl, function(parkingData) {
pData = parkingData.parkeerlocaties;
for (var x = 0; x < pData.length; x++ ) {
ploc = JSON.parse(parkingData.parkeerlocaties[x].parkeerlocatie.Locatie).coordinates
console.log(ploc);
};
});
};
嘗試保存文件,避免轉義序列“ \\”
{ "parkeerlocaties": [ { "parkeerlocatie": { "Locatie": {"type":"Point","coordinates":[4.9032801,52.3824545]} } }
我添加了以下代碼供您進一步參考。 這將幫助您了解自己的錯誤。 您的json字符串在json字符串的末尾缺少“}”和“]”。 最好使用格式化的JSON來驗證您的JSON。 json驗證
try{
var test = "{\"parkeerlocaties\": [{ \"parkeerlocatie\": {\"Locatie\": {\"type\":\"Point\",\"coordinates\":[4.9032801,52.3824545]}}}]}";
var jsondata = JSON.parse(test);
var pData = jsondata.parkeerlocaties;
for (var x = 0; x < pData.length; x++ ) {
var ploc = jsondata["parkeerlocaties"][x]["parkeerlocatie"]["Locatie"]["coordinates"];
alert(ploc);
};
}catch(e){alert(e)}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.