HTML JQuery getJSON返回[object Object]

时间:2013-09-04 13:33:15

标签: jquery html getjson

具有这种结构的Json数据:

Title_day_hourminsec([
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
{"data":"x", "type":"y"},
]);

来自jquery getJSON的调用我无法获得文件的真实内容,只得到这是html输出:

[object Object]
[object Object]
[object Object]
[object Object]
[object Object]
[object Object]

这是我尝试获取json内容的javascript片段:

<script type="text/javascript">

 $(document).ready(function(){
    $.getJSON("myremotedata",
      function(data){
      var items = [];

 $.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
 $('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('body');
        });
  });


</script>

我错过了什么?

2 个答案:

答案 0 :(得分:6)

尝试修改每个循环,如:

$.each(data, function (key, val) {
    items.push('<li id="' + key + '">' + val.data + ' ' + val.type + '</li>');
});

你得到[object Object]因为在每个循环中,变量val实际上是一个对象。您需要使用val.dataval.type之类的Javascript点对象表示法来获取每个对象的值。

答案 1 :(得分:0)

$。each()返回索引和该索引处的值。

$.each(data, function(index, value) {
    // value contains {"data":"x", "type":"y"}
});

然后您可以使用value.data或value.type填充列表。