0

具有这种结构的 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>

我错过了什么?

4

2 回答 2

6

尝试修改每个循环,如:

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

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

于 2013-09-04T13:36:08.620 回答
0

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

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

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

于 2013-09-04T13:39:43.640 回答