Jquery帮助加载Json数据

时间:2011-06-13 03:19:22

标签: javascript jquery ajax json

我想用ajax从我网站的其他页面加载json信息。这是我到目前为止所拥有的

$(function() {
  $('#show-more').bind('click', function() {
    $.ajax({
      url: 'http://localhost:3000/users/10',
      dataType: 'json',
      success: function(data) {
        alert(data);    
      }
    });
  });
})

当我这样做时,警报弹出,我得到[OBJECT OBJECT] [OBJECT OBJECT]。如何获取此数据并将其附加到页面上的Feed标识中。我尝试用alert(data)代替

$('#feed').append(data);

但是我在我的控制台中收到此错误“fragment.appendChild(ret [i]);”。我怎样才能做到我想要的呢?

此外,我正在检索我正在尝试访问的标题消息的数据中有一个字段。我怎么能访问它?我会做像data.message这样的事情吗?

提前致谢!

3 个答案:

答案 0 :(得分:3)

警报显示您有一个对象的事实很棒。 JSON是JavaScript Object Notation,因此,您应该期望在success方法中接收对象作为数据。

根据类型,您可以通过不同方式访问数据。您将无法将其直接“追加”到另一个元素,因为它不是HTML。因此,如果JSON是单个对象,您可以这样做:

alert(data.id)

其中“id”是对象的一个​​属性的名称。或者,如果数据是对象数组,则可以执行以下操作:

$.each(data, function()
{
  alert(this.id);
});

无论何种类型,您都必须手动创建HTML。

答案 1 :(得分:1)

数据是javascript对象。它上面可能包含您正在寻找的数据。如果data.message = "foo",那么执行alert(data.message)将输出“foo”;

如果要查看数据属性,可以执行以下操作之一: 1)在包含alert(data);的行上放置断点在chrome的Javascript控制台或Firefox的Firebug扩展中,您可以在一行上放置一个断点并查看所有变量的值。

2)你可以遍历它:

var str = "";
for(var prop in data){
   str += prop + ": " + data[prop] + "\n";
}
alert(str);

这将显示数据的所有属性。其中一些属性也可能是对象,在这种情况下,您还必须遍历这些属性。

答案 2 :(得分:0)

使用它可以让您快速了解正在发生的事情:

<?php
     echo json_encode(array('test' => 'This is a test'));
?>

然后在你的jquery更改警报(数据)中,发送警报(data.test)。这应该让你开始 - 或者至少作为一个样本来建立。祝你好运!