【问题标题】:Parse JSON response from Servlet解析来自 Servlet 的 JSON 响应
【发布时间】:2012-02-25 15:04:37
【问题描述】:

好的,我有一个 Java Servlet 返回一些 JSON(应用程序/JSON 格式)。为此,我使用 GSON 库。

Servlets GET 方法有一个参数,ID。 servlet 似乎正在工作,例如,当发送的 [Booking]ID 参数为 1 时,chrome 显示我的 AJAX GET 请求返回以下内容。

    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 代码:

负载位置(){ var BookingID = if (BookingID != null && BookingID != "null") { var data = {"id" : BookingID}; $.getJSON("Widget", data, function(data) { // 成功地将所有这些预订小部件作为 JSON,TODO:解析这个! }); } }

我应该在“TODO:解析这个!”中添加什么?部分? 我想遍历所有元素,并获取它们的数据。我真的很讨厌这些 JQuery 的东西。

【问题讨论】:

  • 通过jsonlint.com 运行您的 JSON - 它有效吗?
  • 我不这么认为:JSON 要求键是字符串,用双引号括起来,值是整数,或者同样,双引号括起来的字符串。
  • 我认为 JQuery 正在破坏我的 JSON?就好像我在浏览器中转到 localhost:8080/BookingSystem/Widget?id=1 一样,我得到了不同的(有效的)JSON: [{"WidgetID":46,"BookingID":1,"X":393,"Y":50,"Content": "Test1"},{"WidgetID":47,"BookingID":1,"X":337,"Y":251,"Content":"Test2"},{"WidgetID":48,"BookingID": 1,"X":97,"Y":198,"Content":"Test3"}]

标签: javascript jquery ajax json servlets


【解决方案1】:

在 todo 部分,您应该执行以下操作来循环遍历所有数组:

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

})

【讨论】:

    【解决方案2】:

    看看 jQuery .each()

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

    【讨论】:

      【解决方案3】:
      猜你喜欢
      • 2020-01-09
      • 1970-01-01
      • 2020-06-17
      • 2017-06-14
      • 1970-01-01
      • 1970-01-01
      • 2016-04-14
      • 2016-09-03
      • 1970-01-01
      相关资源
      最近更新 更多