如何在JavaScript中解析来自url的json(嵌套)

时间:2016-04-02 16:57:15

标签: javascript html json

我创建了买卖汽车的网站。我使用Edmunds API来获取汽车信息。

我尝试将信息从他们的API网站解析为下拉列表作为JSON格式,但我没有得到结果。我不知道如何从嵌套数组中获取信息 如何获得名称,nickName,年份(在图像中)?

enter code here
<!DOCTYPE html>
<html>

<body>

<h1>Customers</h1>
<select id="dd"></select>

<script>
var xmlhttp = new XMLHttpRequest();
var url = "https://api.edmunds.com/api/vehicle/v2/makes?state=used&year=2014&view=basic&fmt=json&api_key=xxxxxxxxxxxxxxxxxxxxxxxxxx";

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
        myFunction(xmlhttp.responseText);
    }

}
xmlhttp.open("GET", url, true);
xmlhttp.send();

function myFunction(response) {
    var items = JSON.parse(response);
    var i;
    var out = "<table>";



    function addOptions(){
        JSONObject object = new JSONObject();
        var jsonArray = object.getJSONArray("url");
        for (var i = 0; i < jsonArray.length; i++) {
        option = document.createElement('option');
              option.text = jsonArray.makes[0].name;
              select.add(option);
}
</script>

</body>
</html>

enter image description here

2 个答案:

答案 0 :(得分:0)

您没有关闭addOptions()和他的for圈内部。

答案 1 :(得分:0)

var arrTest = items.makes;

            for (var i = 0; i < arrTest.length; i++) {


                var oneObj = arrTest[i];

                var strName = oneObj.name;
                var niceName = oneObj.niceName;

                var arrModel = oneObj.models;

                for (var j = 0; j < arrModel.length; j++) {

                    var strName1 = arrModel[j].name;
                    var niceName1 = arrModel[j].niceName;
                      debugger; 
                    var arrYear = arrModel[j].years[0];
                }
            }

如果有多个元素

,您可以循环arrModel[j].nickName[0].year