【问题标题】:Problems with displaying JSON data I got from a server显示从服务器获得的 JSON 数据时出现问题
【发布时间】:2012-03-28 20:01:03
【问题描述】:

我是 JSON/AJAX 的新手,并且 我在从服务器获得的 JSON 对象中显示数据时遇到了一些问题。 url“http://localhost:8387/rest/resourcestatus.json”代表这个对象,我想通过HTML/Javascript来显示。这个对象存储了一些监控信息:

{"groupStatus":[

{"id":"AL Process","time":1332755316976,"level":0,"warningIds":[],"errorIds":[]},
{"id":"AL:instance1","time":1332919465317,"level":0,"warningIds":[],"errorIds":[]},
{"id":"AL:instance2","time":1332919465317,"level":1,"warningIds":["documentarea.locked"],"errorIds":[]},
{"id":"SL","time":1331208543687,"level":0,"warningIds":[],"errorIds":[]}

]}

由于请求的 url 与我的域不同,我无法创建典型的 XMLHttpRequest.. 所以我发现有一个 AJAX 跨域请求,可以通过 jQuerys "getJSON()" 方法实现。

我想在表格中显示 ids 及其 level

有什么解决方案可以实现这一点吗?

【问题讨论】:

    标签: javascript jquery ajax json


    【解决方案1】:

    我认为您指的是JSONP。见jQuery.ajax 例如:

    var url = 'http://localhost:8387/rest/resourcestatus.json';    
    $.getJSON(url+'?callback=?', function(data) 
    {
        //data is 
        /*{
            "groupStatus":
            [
                {"id":"AL Process","time":1332755316976,"level":0,"warningIds":[],"errorIds":[]},
                {"id":"AL:instance1","time":1332919465317,"level":0,"warningIds":[],"errorIds":[]},
                {"id":"AL:instance2","time":1332919465317,"level":1,"warningIds":["documentarea.locked"],"errorIds":[]},
                {"id":"SL","time":1331208543687,"level":0,"warningIds":[],"errorIds":[]}
            ]
        }*/
    });
    

    在服务器端,您需要将响应包装到 JavaScript 函数中:response = Request["callback"] +"("+ response+")";

    结果将如下所示:

    ?({"groupStatus":[{"id":"AL ....})
    

    所以浏览器实际上会加载一个有效的java脚本代码。

    【讨论】:

      【解决方案2】:

      $.getJSON 的回调函数在其参数中包含 AJAX 调用的结果。

      $.getJSON('http://localhost:8387/rest/resourcestatus.json', function(data) {
          $(data.groupStatus).each(function() {
              // do something with $(this).id
          });
      });
      

      【讨论】:

      • 感谢您的回答,现在id和level怎么显示?像这样? $('#content').append('

        ID: ' + $(this).id+ '

        ');
      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多