将JSON数据放入变量中

Placing JSON data in a variable

本文关键字:变量 JSON 数据      更新时间:2023-09-26

我正在创建一个自动完成表单,根据您的邮政编码填写您的位置。这是代码,我必须得到一个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'

谢谢!

我已经检查了请求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'];
}

您可以张贴您从XML请求返回的内容吗?要在javascript中解析json,可以使用:

var jsonraw = JSON.parse(jsonobj)

这样,你可以从json中选择一些东西:

var location = jsonraw['location']

location替换为json返回的内容

使用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