2011-01-12 47 views
0

我傳遞一個包含參數的ajax get,即添加到db的日期。構建Json對象,然後將結果與HTML表格數據相關

的Java查詢DB的人的結果在這一天加入,並建立一個JSON對象,對我來說,像這樣:

{ 
    "resultdata" : { "rowsReturned" : "2", "fetchTime" : "180"} 
    "row_1" : { "name" : "Larry", "sex" : "m", "age" : "26", "location" : "seattle" } 
    "row_2" : { "name" : "Pedro", "sex" : "m", "age" : "22", "location" : "unknown" } 
} 

然後我可以返回JSON對象爲一個字符串。然後,我想根據這些結果動態構建表格。

首先,JSON對象是否適用於構建表格?

結果數據告訴我有多少行和以毫秒爲單位的時間,然後是該特定格式中的多行。

然後我想創建一個特定的div元素裏面的一張桌子,一旦這些結果與無刷新頁面等

所以標識期待與每列的標題表頭返回給我的瀏覽器上飛 - 後跟你猜對了2排。

要做到這一點,最好的方法是什麼。我熟悉jQuery,JSON對我來說是全新的,在jQuery中處理JSON是我熱衷於學習的東西。

任何幫助,非常感謝。

回答

1

你可以使用jsonlint來驗證你的json。 你的無效。它缺少一些「」:

{ 
    "resultdata" : { 
     "rowsReturned" : "2", 
     "fetchTime" : "180" 
    }, // <-- 
    "row_1" : { 
     "name" : "Larry", 
     "sex" : "m", 
     "age" : "26", 
     "location" : "seattle" 
    }, // <-- 
    "row_2" : { 
     "name" : "Pedro", 
     "sex" : "m", 
     "age" : "22", 
     "location" : "unknown" 
    } 
} 

我做了一個少一個的DEMO可能的方式如何通過JSON循環與通過對功能於循環


for (key in json) { 

循環json並將每個鍵存儲在「鍵」變量中。 你的情況'resultdata','row_1','row_2'。
因此,要訪問您編寫的每個鍵的數據,例如,將json [key]轉換爲json ['row_1']。
現在你做同樣的事情與row_1對象:

for(key1 in json[key]) 

key1的現在在row_1對象的按鍵:「姓名」,「性別」,...

訪問數據現在你會寫json [key] [key1],例如json ['row_1'] ['name']。

當然

它的最好給鑰匙有意義的名稱,以避免混淆,像在我的例子:)

+0

感謝你已經投入到這個時候,它差不多就是我要找的。但是,如果你有一段時間你能向我解釋與json [key] [key1]的交易。這些鍵是如何工作的,以便從您解析的json對象中檢索數據。 – Julio 2011-01-13 10:40:48

1

您的JSON在構建表格時看起來不錯。

您將要使用$ .getJSON()來獲取JSON數據,因爲它會自動將JSON解析爲一個對象。如果您需要$ .ajax()的高級功能,則可以從AJAX調用返回的數據調用$ .parseJSON(),並將JSON解析爲一個對象。