将JSON数据放在变量中

时间:2015-09-17 09:23:11

标签: javascript json

我正在创建一个自动填充表单,根据您的邮政编码填写您的位置。这是我必须使用基于我的邮政编码的信息获取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'

谢谢!

3 个答案:

答案 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