【问题标题】:HTML JQuery getJSON return [object Object] [duplicate]HTML JQuery getJSON 返回 [object Object] [重复]
【发布时间】:2013-09-04 21:39:43
【问题描述】:

这种结构的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 sn-p:

<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>

我错过了什么?

【问题讨论】:

  • 显示的数据不是有效的 JSON。它应该是 JSONP 吗?
  • 你得到一个对象数组。 [object Object] 是对象的默认字符串表示。如果要显示特定属性,则必须access them
  • $.getJSON 将使用 JSON.parse() 自动解析响应,这就是您最终得到 JavaScript 对象的原因。如果您需要未解析 JSON 格式的响应,则可以改用 $.get()。

标签: jquery html getjson


【解决方案1】:

尝试修改每个循环,例如:

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 2012-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多