javascript - JSON 未定义节点尝试解析

标签 javascript json

当我尝试访问其中一个节点时,尝试解析 JSON 并得到 UNDEFINED。 JSON 的第一部分和函数如下

function loadmakes()
    {

    jQuery.ajax({
    url: "getedmunds.php",
    data:'id=1',
    type: "POST",
    success:function(data){
        alert( data);       
        alert(data.makes); //<<<< **FAILS HERE Undefined** 

        for(var i in data.makes)
                {
                         $('#make').append('<option value=' + data.makes[i].id + '>' + data.makes[i].name + '</option>');
                }
    }, 
    error:function (){
        alert("Error calling makes");
        }
    });

}

这是 JSON 的第一行

{"makes":[{"id":200002038,"name":"Acura","niceName":"acura","models":[{"id":"Acura_ILX","name":"ILX","niceName":"ilx","years":[{"id":200471908,"year":2014}]},{"id":"Acura_ILX_Hybrid","name":"ILX Hybrid","niceName":"ilx-hybrid","years":[{"id":200493809,"year":2014}]},{"id":"Acura_MDX","name":"MDX","niceName":"mdx","years":[{"id":200465929,"year":2014}]},{"id":"Acura_RDX","name":"RDX","niceName":"rdx","years":[{"id":200467168,"year":2014}]},{"id":"Acura_RLX","name":"RLX","niceName":"rlx","years":[{"id":100539511,"year":2014}]},{"id":"Acura_TL","name":"TL","niceName":"tl","years":[{"id":200488448,"year":2014}]},{"id":"Acura_TSX","name":"TSX","niceName":"tsx","years":[{"id":200490517,"year":2014}]},{"id":"Acura_TSX_Sport_Wagon","name":"TSX Sport Wagon","niceName":"tsx-sport-wagon","years":[{"id":200673755,"year":2014}]}]},{"id":200001769,"name":"Aston Martin","niceName":"aston-martin","models":[{"id":"Aston_Martin_DB9","name":"DB9","niceName":"db9","years":[{"id":200473436,"year":2014}]},...

最佳答案

问题是 data 不是一个已解析的 JSON 对象,而是一个字符串。当您使用 AJAX 时,它会返回一个字符串。

您可以执行以下两件事之一:一、jQuery 提供 dataType option for $.ajax 。只需提供值“json”,jQuery/AJAX 就会自动为您解析结果。

$.ajax({
    // ...
    dataType: 'json',
    success: function(data) {
        // `data` is a javascript object now.
    }
});

您还可以使用 JSON.parse成功解析data。不过,这实际上就是 jQuery/AJAX 通过最后一个解决方案为您所做的事情。

关于javascript - JSON 未定义节点尝试解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121280/

相关文章:

php - 如何使用 php 将我的 sql 查询转换为 json?

json - 有没有办法获得用 arbor.js 构建的图形的 JSON 表示形式?

javascript - 从 Node 应用程序调用 amazon lambda 函数

Javascript - 在每个新行中复制日期/时间

json - Azure:自动化帐户的 SKU 属性值,集中模板文档在哪里?

java - 如何使用键值检索整个 JSON 对象?

JavaScript Json.stringify 替换器将值转换为字符串

javascript - Jquery和动态表行更新,痛苦的性能

javascript - 未能加载响应数据请求内容已从检查器缓存中逐出

javascript - JavaScript 中 & 字符的自动编码转义