JSON GEO位置 https://maps.googleapis.com/maps/api/geocode/json?address=KOLKATA&key=API_KEY
{
"results" : [
{
"address_components" : [
{
"long_name" : "Kolkata",
"short_name" : "Kolkata",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Kolkata",
"short_name" : "Kolkata",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "West Bengal",
"short_name" : "WB",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "India",
"short_name" : "IN",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Kolkata, West Bengal, India",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 23.0078201,
"lng" : 88.5428696
},
"southwest" : {
"lat" : 22.3436288,
"lng" : 88.19430439999999
}
},
"location" : {
"lat" : 22.572646,
"lng" : 88.36389500000001
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 23.0078201,
"lng" : 88.5428696
},
"southwest" : {
"lat" : 22.3436288,
"lng" : 88.19430439999999
}
}
},
"place_id" : "ChIJZ_YISduC-DkRvCxsj-Yw40M",
"types" : [ "locality", "political" ]
}
],
"status" : "OK"
}
JS
$(function() {
$("#home_city_select").change(function() {
//alert( $('option:selected', this).text() );
var city = document.getElementById("home_city_select").value;
var ltd;
var lng;
var jsonLtdLng="https://maps.googleapis.com/maps/api/geocode/json?address="+city+"&key=API_KEY";
//alert(JSON.stringify(jsonLtdLng));
//alert($.getJSON(jsonLtdLng));
//alert($.getJSON(jsonLtdLng.lat));
//alert($.getJSON(jsonLtdLng.results.geometry.location.lat));
//alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat));
//alert($.getJSON(jsonLtdLng.results[0].geometry.location.lat()));
alert(jsonLtdLng.results[0].geometry.location.lat());
});
});
在IBM Worklight中进行测试。
但我无法获得纬度和经度
alert(JSON.stringify(jsonLtdLng)); //返回完整地址
alert($。getJSON(jsonLtdLng)); //返回对象
alert($。getJSON(jsonLtdLng.lat)); //什么都不返回
alert($。getJSON(jsonLtdLng.results.geometry.location.lat)); //什么都不返回
alert($。getJSON(jsonLtdLng.results [0] .geometry.location.lat)); //什么都不返回
alert($。getJSON(jsonLtdLng.results [0] .geometry.location.lat())); //什么都不返回
alert(jsonLtdLng.results [0] .geometry.location.lat()); //什么都不返回
答案 0 :(得分:4)
您对$.getJSON
的来电不完全正确
试试这个:
$.getJSON(jsonLtdLng, function (data) {
console.log(data.results[0].geometry.location.lat);
});
答案 1 :(得分:1)
我认为您可以使用console.log()
,alert()
或document.write()
,只要信息被反序列化,我使用JSON.parse()
进行反序列化,eval()
是以前人们用过的东西。 反序列化意味着恢复json中编码的数据,以便Javascript可以将其用作对象。实际上,如果你使用write.document(someJson),你会看到[object object]意味着你已准备好使用所有数据,但你需要先JSON.parse()
它。 JSON.stringnify()
与您想要做的相反,因为该函数用于序列化数据然后传输它,然后接收器需要使用JSON.parse()
对其进行反序列化在Javascript中使用它。
我喜欢使用write.document()
来查看信息,但是控制台日志可以让您更轻松地查看对象内部的内容。这里有一些代码示例:
// apiData would be the variable with the API information
var externalData = JSON.parse(apiData);
// will output [object object]
document.write(externalData);
// will output “ “
document.write(' ');
// will output the latitude
document.write(externalData.results[0].geometry.location.lat);
// will output in the console, you need to type externalData in the console log
console.log(externalData);
我希望这会有所帮助。