2

我有一个使用 obj = JSON.parse(data) 创建的 json 对象。“数据”是从网络服务器收到的。我知道该对象是正确的,因为我可以将其中的单个变量打印到 div 或我的列表中。

这是从以下位置创建 json 对象的内容:

[{"name":"Staurikosaurus","group":"Saurischia","diet":"Carnivore","period":"Triassic"},{"name":"梁龙","group":"Saurischia ","diet":"Herbivore","period":"Jurassic"},{"name":"Stegosaurus","group":"Ornithischia","diet":"Herbivore","period":"Jurassic "},{"name":"霸王龙","group":"Saurischia","diet":"Carnivore","period":"白垩纪"}]

从字面上看,我想做的就是把它放到一个网页上显示。

我当前的代码:

 function getJson(){$.get(MY URL, function(data) {
            // String
            //console.dir(data);

            // Parse JSON
            var obj = JSON.parse(data);

            // JSON object
            //console.dir(obj);
            $('#myList').html("<li>"+obj[0].period+"</li><li>"+obj[2].period+"</li>");
            //$('#myList').html("<li>obj[2].period</li>");
        });

    }

这成功地打印出 Triassic 然后 Jurrasic 的列表。

我更愿意在 Jquery 中执行此操作,但 javascript 没问题。

谢谢你。

4

2 回答 2

1

您没有遍历列表,只是打印出数组中的第 0 个和第 2 个元素。尝试:

function getJson(){$.get(MY URL, function(data) {
        // String
        //console.dir(data);

        // Parse JSON
        var obj = JSON.parse(data);

        // JSON object
        //console.dir(obj);
        var inner = '';
        for(i=0; i < obj.length; i++) {
             inner += "<li>"+obj[i].period+"</li>";
        }
        $('#myList').html(inner);
    });

}

我确信使用 jQuery 有一种更清洁的方法,但这应该可以

于 2014-04-10T23:02:44.207 回答
1

如果你想使用 jQuery 语法,过程如下:

var listElement = '';

$.each(obj, function(index, value) {
    listElement += '<li>' + data[obj].period + '</li>';
})

$('#myList').html(listElement);
于 2014-04-10T23:08:40.767 回答