通过Javascript解析JSON对象(对象列表)并在其中循环

Parsing a JSON object (list of object) through Javascript and loop in it?

本文关键字:对象 在其中 循环 列表 Javascript 解析 JSON 通过      更新时间:2023-09-26

好吧,我知道有问题,但我不明白是什么。

我从我写的web服务中读取了服务的数组列表(JSON介质类型)。到那个地址返回json字符串。

现在我正试图使一个网页显示的值,并看到每3秒对页面请求的更改。

如何解析或使用它?我读了很多书,但我还在起步阶段。

[是不可能传递这个对象到JSP和解析,循环和一切与JSTL?那太棒了!)

下面是js代码:
 <script type="text/javascript">
setInterval(function(){
    $.ajax({ url: "/MyApp/rest/display", success: function(data){
        var objs = $.parseJSON(data);
        $.each(objs, function(i,service) {
            $("#service").append('<p>'+service+'</p>');
        });
    }, dataType: "json"});
}, 3000);
</script>

我有一个<div id="service">

编辑:

差不多了!

现在我有了这个:

<script type="text/javascript">
setInterval(function(){
    $.ajax({ url: "/myApp/rest/display", success: function(data){
        $.each(data, function(i,service) {
            var cont = 1;
            var newdiv = document.createElement('div');
            newdiv.setAttribute('id', "service"+i);
            $("#service"+i).html('<p>'+service.serviceId+" "+service.queue.lastNumber+'</p>');
            document.getElementById("services").appendChild(newdiv);
            cont++;
        });
    }, dataType: "json"});
}, 5000);
</script>

它得到更新和所有(好!),但我有一个问题:它不断创建新的div 在更大的一个(空div)。我怎样才能避免这种情况呢?

EDIT2:

没关系,我已经做完了!在appendChild:

前面添加这一行
if(!$("#service"+i).length)

很有魅力。谢谢!

使用JQuery,您不需要解析data,因为当您设置dataType: "json"时,它已经被解析为JSON。

$.ajax({ 
    url: "/MyApp/rest/display", 
    success: function(data) {
        $.each(data, function(i,service) {
            $("#service").append('<p>'+service+'</p>');
        });}, 
    dataType: "json" });

p。如果这不起作用,请发布AJAX调用返回的JSON。

编辑:这是JSTL做事的方式:创建一个JSF或JSP,不返回一个完整的HTML页面,而只是您想要在#servicediv内的内容。让我们将页面称为doit.jsp。现在我们可以用ajax把它放到#servicediv中。

$.ajax({
    url: "doit.jsp",
    success: function(data) { $("#service").html(data); });