javascript - 显示 JSON 回调返回的对象中的数据

标签 javascript jquery jsonp

我正在尝试从服务器获取数据,并且由于跨域请求,我正在使用 JSONP 回调。我只能显示服务器中的部分数据。我可以使用显示的文件中的“统计”信息

  function(rtac) {
    for(i in rtac) {
      rtacs = rtac[i];
      $("#rtac-list").append(rtacs.Stats.ItemCount + "<hr />");
   }

但是名为“Data”的部分我遇到了问题。我已经尝试过...

$("#rtac-list").append(rtacs.Data.Number + "<hr />");

...但它不起作用。

这是服务器文件返回的内容:

{
    "rtac_edin_0749542489": {
        "Data": {
            "1": {
                "Number": "1",
                "Location": "Non fiction (Sighthill)",
                "Status": "Available",
                "LoanType": "Standard loan",
                "DueDate": "",
                "Shelfmark": "",
                "CopyNo": "A19958",
                "ClassNo": "912.4144"
            }
        },
        "Stats": {
            "DueDateCount": 0,
            "ItemCount": 1
        }
    },
    "rtac_edin_0715810782": {
        "Data": {
            "1": {
                "Number": "1",
                "Location": "Non fiction (Sighthill)",
                "Status": "Available",
                "LoanType": "Standard loan",
                "DueDate": "",
                "Shelfmark": "",
                "CopyNo": "A12675",
                "ClassNo": "941.143"
            },
            "2": {
                "Number": "2",
                "Location": "Non fiction (Sighthill)",
                "Status": "On Loan",
                "LoanType": "Standard loan",
                "DueDate": "31 March 2015",
                "Shelfmark": "",
                "CopyNo": "A12675",
                "ClassNo": "941.143"
            },
            "3": {
                "Number": "3",
                "Location": "Non fiction (Sighthill)",
                "Status": "Available",
                "LoanType": "Standard loan",
                "DueDate": "",
                "Shelfmark": "",
                "CopyNo": "A12675",
                "ClassNo": "941.143"
            }
        },
        "Stats": {
            "DueDateCount": 1,
            "ItemCount": 2
        }
    },
    "rtac_edin_0862671906": {
        "Data": {
            "1": {
                "Number": "1",
                "Location": "Non Fiction (Granton)",
                "Status": "Available",
                "LoanType": "Standard loan",
                "DueDate": "",
                "Shelfmark": "",
                "CopyNo": "0017564",
                "ClassNo": "914.1443"
            }
        },
        "Stats": {
            "DueDateCount": 0,
            "ItemCount": 1
        }
    }
}

这是我用于测试目的的代码:

    <html><head><title>RTAC</title>
    <script type="text/javascript"       src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    </head><body>
    <div id='rtac-list'></div>
    <script type="text/javascript">
    $(document).ready(function() {
    var url =  "http://www.lh2cc.net/cwolf/php/dsetask/index.php";
    $.getJSON(url + "?callback=?", null, function(rtac) {
        for(i in rtac) {
            rtacs = rtac[i];
            $("#rtac-list").append(rtacs.Stats.ItemCount + "<hr />");

        }
    });
   });
    </script>
    </body></html>

文件中“数据”项目的结构似乎给出了问题,因为它有 3 个项目,我不确定如何处理这个问题。

请帮忙谢谢。

最佳答案

您需要访问对象的“1”部分:

$("#rtac-list").append(rtacs.Data["1"].Number + "<hr />");

要访问所有Data结构:

for (j in rtac.Data) {
    if (rtac.Data.hasOwnProperty(j)) {
        $("#rtac-list").append(rtac.Data[j].Number + "<hr />");
    }
}

编辑:

<html><head><title>RTAC</title>
    <script type="text/javascript"       src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
    </head><body>
    <div id='rtac-list'></div>
    <script type="text/javascript">
    $(document).ready(function() {
    var url =  "http://www.lh2cc.net/cwolf/php/dsetask/index.php";
    $.getJSON(url + "?callback=?", null, function(rtac) {
        for(i in rtac) {
            rtacs = rtac[i];
            for (j in rtacs.Data) {
                if (rtacs.Data.hasOwnProperty(j)) {
                    $("#rtac-list").append(rtacs.Data[j].Number + "<hr />");
                }
            }
        }
    });
   });
</script>
</body></html>

关于javascript - 显示 JSON 回调返回的对象中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28854154/

相关文章:

asp.net - jQuery.change + 内联 onchange fn() 导致 fn 执行两次

javascript - 有没有办法在前端 Web 应用程序中使用 Twitter API?

javascript - 系统JS : WARNING error running cfx run once updated to Firefox v25

javascript - Mongodb:在 $group 之后使用 $sample

javascript - NodeJS - 循环嵌套 API 调用

javascript - 使用JQuery获取不同行上两个表格单元格之间的所有表格单元格

javascript - 我怎样才能使这个功能在 Javascript 中更快?

Java 的 Jersey、RESTful API 和 JSONP

JQuery、XmlHttpRequest 和状态代码 0

JavaScript 日历下拉菜单