2012-07-26 98 views
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, ... 

当我运行该脚本,我得到的输出:

物品1 =未定义ITEM2 =未定义的项目3 =不确定

如果我取消了

alert(data); 

所有我得到的回报是[对象的对象]

那么这里给人?

再次感谢:)

+1

不能提醒的对象,但是,您可以使用控制台.log(data)并在JavaScript调试器(如Firebug)中查看对象。 – jholloman 2012-07-26 21:50:26

回答

1

你要返回的数据是做的没有afAgeCounter等属性。它有一个data财产有那些。

您需要先获得data属性。

if(data.success){ 
    data = data.data; 
    $('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>"); 
} 
+0

非常感谢。像魅力一样工作,我也很欣赏这个解释。 – apttap 2012-07-26 22:04:12

+0

不客气:-D – 2012-07-26 22:04:32

2

尝试

$('#showdata').html("<p>item1="+data.data.afAgeCounter+" item2="+data.data.afWordCounter+" item3="+data.data.idNumber+"</p>"); 
+0

非常感谢。很棒。 – apttap 2012-07-26 22:05:17

2

你应该访问它像这样:

data.data.afWordCounter 

,因为你的JSON变量具有这样的结构:

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

非常感谢。我希望我能给你答案的答案。 – apttap 2012-07-26 22:04:47

1

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

它有两个属性'成功'和'数据'。 'data'本身就是和object {}以及它自己的属性,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>"); 
    }); 
+0

感谢您的好解释。 – apttap 2012-07-26 22:05:40

0

只是堆放在这里,但如果你曾经想知道包含在一个js对象,你总是可以是使用JSON打印字符串:如果您打开方法的身体这样的事情发生了什么事情。字符串化:https://github.com/douglascrockford/JSON-js/blob/master/json2.js

所以,问题的对象,就可以看到通过什么包含在它的:

alert(JSON.stringify(mysteryObject)); 

console.log(JSON.stringify(mysteryObject); 
相关问题