提前感谢您的帮助。我是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 = undefined item2 = undefined item3 = undefined
如果我取消注释
alert(data);
我所得到的只是[object Object]
那么这里给出了什么?
再次感谢:)
答案 0 :(得分:2)
尝试
$('#showdata').html("<p>item1="+data.data.afAgeCounter+" item2="+data.data.afWordCounter+" item3="+data.data.idNumber+"</p>");
答案 1 :(得分:2)
您应该像这样访问它:
data.data.afWordCounter
因为你的json变量有这样的结构:
data = {
"success":true,
"data":{
"afWordCounter":123,"afAgeCounter":456,"idNumber":789,
...
答案 2 :(得分:1)
您返回的数据没有afAgeCounter
等属性。它有data
属性,包含那些。
您需要先获得data
属性。
if(data.success){
data = data.data;
$('#showdata').html("<p>item1="+data.afAgeCounter+" item2="+data.afWordCounter+" item3="+data.idNumber+"</p>");
}
答案 3 :(得分: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>");
});
答案 4 :(得分:0)
只是在这里堆积,但是如果你想知道js对象中包含什么,你总是可以使用JSON.stringify将它打印成字符串:https://github.com/douglascrockford/JSON-js/blob/master/json2.js
所以,有问题的对象,您可以通过以下方式查看其中包含的内容:
alert(JSON.stringify(mysteryObject));
或
console.log(JSON.stringify(mysteryObject);