2012-02-25 153 views
1

好吧,我有一個Java Servlet返回一些JSON(應用程序/ JSON格式)。要做到這一點,即時通訊使用GSON庫。解析來自Servlet的JSON響應

Servlets GET方法需要一個參數ID。該servlet似乎是工作,例如,Chrome會顯示我的AJAX GET請求返回以下時發出的[預訂] ID paramater爲1

0: {WidgetID:46, BookingID:1, X:393, Y:50, Content:Test1} 
    1: {WidgetID:47, BookingID:1, X:337, Y:251, Content:Test2} 
    2: {WidgetID:48, BookingID:1, X:97, Y:198, Content:Test3} 

這個問題我已經是解析此響應。這裏是我的JS代碼:

 
    loadPositions() { 
    var BookingID = 
    if (BookingID != null && BookingID != "null") 
    { 
    var data = {"id" : BookingID}; 
    $.getJSON("Widget", data, function(data) { 
    // Successfully got all this bookings widgets as JSON, TODO: Parse this! 
    }); 
    } 
    }

我應該把什麼在 「TODO:解析這個」部分? 我想對所有元素進行foreach,並抓取他們的數據。我真的很喜歡這個JQuery的東西。

+0

通過http://jsonlint.com/運行您的JSON - 它有效嗎? – 2012-02-25 15:08:56

+0

我不這麼認爲:JSON要求鍵是字符串,用雙引號括起來,並且值是整數,或者再次用雙引號括起來的字符串。 – bdares 2012-02-25 15:11:08

+0

我認爲JQuery正在損壞我的JSON?就像我在瀏覽器中訪問http:// localhost:8080/BookingSystem/Widget?id = 1一樣,我得到了不同的(有效的)JSON:[{「WidgetID」:46,「BookingID」:1,「X」: 393, 「Y」:50, 「內容」: 「測試1」},{ 「爲widgetid」:47, 「BookingID」:1, 「X」:337, 「Y」:251, 「內容」: 「的Test2」} ,{「WidgetID」:48,「BookingID」:1,「X」:97,「Y」:198,「Content」:「Test3」}] – 2012-02-25 15:27:58

回答

4

在TODO部分,你應該做到以下幾點來遍歷所有的數組:

$.each(data, function(index,value){ 
    // here index=0 & value.WidgetID=46, value.BookingId = 1, use it as you would like to. 

}) 
+0

非常好,謝謝! – 2012-02-25 15:32:17

1

看一看jQuery的。每()

http://api.jquery.com/jQuery.each/

,並有一個良好的你想要做什麼的例子...

http://api.jquery.com/jQuery.getJSON/

$.getJSON('ajax/test.json', 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'); 
});