简体   繁体   English

如何从JavaScript中的网址解析json(嵌套)

[英]how to parse json (nested) from url in JavaScript

I create website to buy and sell cars. 我创建了买卖汽车的网站。 I used Edmunds API to get car information. 我使用Edmunds API获取汽车信息。

I tried to parse information into drop list from their API site as JSON format but I did not get result . 我试图将信息以JSON格式从其API网站解析到放置列表中,但未得到结果。 I do not how to get information from nested arrays how to get name, nickName , year (in the image)? 我不是如何从嵌套数组中获取信息,如何获取名称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 在此处输入图片说明

您没有关闭addOptions()及其括号内的for循环。

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];
                }
            }

You can loop arrModel[j].nickName[0].year if there are multiple elements 如果有多个元素,则可以循环arrModel[j].nickName[0].year

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM