2012-02-25 225 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'); 
});