我正在创建一个自动填充表单,根据您的邮政编码填写您的位置。这是我必须使用基于我的邮政编码的信息获取JSON的代码:
var client = new XMLHttpRequest();
client.open("GET", "http://api.zippopotam.us/nl/1012", true);
client.onreadystatechange = function() {
if(client.readyState == 4) {
// alert(client.responseText);
var jsonObj = [client.responseText]
};
};
client.send();
现在我只需要json的位置条目。但由于某种原因,我无法弄清楚如何在变量中获取它。基本上我的目标是获得类似的东西:
var location = 'Amsterdam'
谢谢!
答案 0 :(得分:3)
我已经检查了请求GET到http://api.zippopotam.us/nl/1012
的响应,这是回复:
{
"post code" : "1012",
"country" : "Netherlands",
"country abbreviation" : "NL",
"places" : [{
"place name" : "Amsterdam Binnenstad en Oostelijk Havengebied",
"longitude" : "4.9027",
"state" : "Noord-Holland",
"state abbreviation" : "NH",
"latitude" : "52.3666"
}
]
}
所以你需要做以下的事情:
var jsonResponse= JSON.parse(client.responseText);
var locations=jsonResponse.places; //an array!
if (places.length) {
var firstLocation=locations[0]['place name'];
}
答案 1 :(得分:2)
您可以发布从XML请求返回的内容吗? 要在javascript中解析json,您可以使用:
var jsonraw = JSON.parse(jsonobj)
这样,您可以使用以下选项从json中选择一些内容:
var location = jsonraw['location']
将location
替换为从json返回的内容。
答案 2 :(得分:1)
使用JSON.parse
函数:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
client.onreadystatechange = function() {
if(client.readyState == 4) {
var jsonObj = JSON.parse(client.responseText);
};
};
用try
包裹它并不会有什么坏处,以防服务器没有返回有效的json