1

在此先感谢您的帮助。我是 JSON 新手,我一直在尝试用它$.getJSON来填写一些表单字段,但没有运气。

我开始切块,直到我只需要测试来自服务器的响应(当在浏览器中查看下面列出的 URL 时,我的服务器正在提供 JSON):

$(document).ready(function(){
    $('#button').live('click', function(){
        $.getJSON('http://localhost:8000/core/api/master-assembly/16', function(data) { 
        // alert(data); // uncomment for debug
           $('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>");
        });
    });
});

我的 JSON 数据看起来像:

{"success":true,"data":{"afWordCounter":123,"afAgeCounter":456,"idNumber":789, ...

当我运行这个脚本时,我得到了输出:

item1=未定义 item2=未定义 item3=未定义

如果我取消注释

alert(data);

我得到的回报是[object Object]

那么这里给出了什么?

4

5 回答 5

2

尝试

$('#showdata').html("<p>item1="+data.data.afAgeCounter+" item2="+data.data.afWordCounter+" item3="+data.data.idNumber+"</p>");
于 2012-07-26T21:46:43.043 回答
2

您应该像这样访问它:

data.data.afWordCounter

因为您的 json 变量具有以下结构:

data = {
    "success":true,
    "data":{
         "afWordCounter":123,"afAgeCounter":456,"idNumber":789,
         ...
于 2012-07-26T21:46:58.897 回答
1

您返回的数据没有afAgeCounter, etc. 属性。它有一个data拥有这些的属性。

您需要先获得该data属性。

if(data.success){
    data = data.data;
    $('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>");
}
于 2012-07-26T21:50:40.127 回答
1

正如其他人所逃避的那样,您的整个 JSON 结果是回调的参数 - 'data',它是一个对象。

它有两个属性,“成功”和“数据”。'data' 本身和对象 {} 具有它自己的属性,afWordCounter、afAgeCounter 等。因此要获得内部 'data' 对象的属性,您需要使用 data.data.afWordCounter 等

如果您将方法主体切换为以下内容,可能会更清楚发生了什么:

    $.getJSON('http://localhost:8000/core/api/master-assembly/16', function(jsonresult)         { 

       $('#showdata').html("<p>item1="+jsonresult.data.afAgeCounter+" item2="+jsonresult.data.afWordCounter+" item3="+jsonresult.data.idNumber+"</p>");
    });
于 2012-07-26T21:52:11.353 回答
0

只是在这里堆积,但如果您想知道 js 对象中包含什么,您可以随时使用 JSON.stringify 将其打印到字符串:https ://github.com/douglascrockford/JSON-js/blob/master/json2 .js

因此,有问题的对象,您可以通过以下方式查看其中包含的内容:

alert(JSON.stringify(mysteryObject));

或者

console.log(JSON.stringify(mysteryObject);
于 2013-02-13T18:12:01.677 回答