javascript - getJSON 并使用 $.each 循环

标签 javascript jquery json

我将代码简化为一个非常简单的脚本,这让我发疯,它不起作用。

这个想法是通过Webservice获取JSON字符串,然后显示数据。是的,这似乎是一件非常简单的事情......

JSON 字符串有效:

[
{
    "FileName": "Test1",
    "GuestRating": 7.09,
    "ID": 1066113,
    "Image": "A110897780.jpg",
    "Latitude": 35.534599,
    "Longitude": 121.759896,
    "Name": "Test 1",
    "NumberOfReviews": 317,
    "Rate": 19.19,
    "StarRating": 4,
    "UpdatedDate": "2012-11-09T16:48:27.65",
    "UpdatedBy": "test"
},
{
    "FileName": "Test 2",
    "GuestRating": 8.03,
    "ID": 1066110,
    "Image": "A110563463.jpg",
    "Latitude": 31.432816,
    "Longitude": 122.53242,
    "Name": "Test 2",
    "NumberOfReviews": 164,
    "Rate": 27.92,
    "StarRating": 4,
    "UpdatedDate": "2012-04-26T10:46:34.403",
    "UpdatedBy": "test"
}

]

我的 JavaScript:

<script src="Scripts/jquery-2.0.3.min.js"></script>
<script>
    $(document).ready(function () {
        $.getJSON('api/hotels')
            .done(function (data) {
                alert(data)
                var items = [];
                $.each(data, function (key, val) {
                    alert('11111');
                    items.push("<li id='" + key + "'>" + val + "</li>");
                });
                alert('2222');

                $("<ul/>", {
                    "class": "my-new-list",
                    html: items.join("")
                }).appendTo("body");
            })
        .error(function () {
            alert('error');
        });
    });

</script>

它主要是从他们网站上的 jQuery 示例复制的。 第一个警报起作用并显示 JSON 数据。 然后它似乎就死了。不再有警报。 Chrome的Javascript控制台显示以下语句:

Uncaught TypeError: Cannot use 'in' operator to search for '1525' in

后跟我的 JSON 字符串。我不知道这意味着什么。

感谢任何人的提示!

最佳答案

使用包含 $.each(data, function (key, val) { 的 JSON,不会像 FileName 那样返回 keys。为什么?因为 each 迭代数组,每次都会返回一个索引和一个完整的对象。

$.each(data, function (idx, obj) {
  $.each(obj, function(key, val) {
    ...

关于javascript - getJSON 并使用 $.each 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21507386/

相关文章:

javascript - React 解析具有多个单词标识符的 JSON 数据

javascript - 如何使用 jquery 从数组中选择元素并添加类?

javascript - 在回调中丢失 this 的上下文

javascript - 链接悬停CSS在不 float 时在表格 float 标题中不起作用

c++ - Json输出成单行

javascript - 在同一页面上使用 AJAX 将 Javascript var 传递给 PHP

javascript - 我如何修改 google places autocomplete 的外观或直接访问 json 并自己完成所有操作?

javascript - 将元素定位在图像元素上,但图像随窗口改变大小

json - Mongoose 路由特定查询输出

java - 将 JSON 字符串解析为 List<Data Entry> 的文本文件