2011-06-13 74 views
2

我想從我的網站的另一個頁面加載json信息與Ajax。這裏是我迄今爲止Jquery幫助加載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 ID上。我想這在地方的alert(data)

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

但是我得到這個錯誤 「([I] RET)fragment.appendChild;」 在我的控制檯。我怎樣才能做到我想要的?

此外,我正在檢索我正在嘗試訪問的標題消息的數據中有一個字段。我怎樣才能訪問它?我會做類似data.message的事嗎?

在此先感謝!

+0

正在返回的數據對象是什麼? (asp.net,php,jsp)提供的服務器應用程序是什麼? – hivie7510 2011-06-13 03:21:27

回答

3

警報顯示您擁有一個物體的事實很棒。 JSON是JavaScript Object Notation,因此,您應該期望在成功方法中將對象作爲數據接收。

根據類型的不同,您可以通過不同的方式訪問數據。您將無法將其「附加」到另一個元素,因爲它不是HTML。因此,如果JSON是單個對象,則可以這樣做:

alert(data.id) 

其中「id」是對象屬性之一的名稱。或者如果數據是一組對象,則可以這樣做:

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

無論類型如何,您都必須手動創建HTML。

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

這將顯示您的數據的所有屬性。其中一些屬性也可能是對象,在這種情況下,您也必須重複這些屬性。

0

使用此給你這是怎麼回事的快速的想法:

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

然後在你的jQuery變化的警報(數據),以提醒(data.test)。這應該讓你開始 - 或者至少可以作爲一個樣本來構建。祝你好運!