簡體   English   中英

通過Javascript解析JSON對象(對象列表)並在其中循環?

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

好吧,我知道有什么不對,但我無法理解。

我從我寫的Web服務中讀取了一個服務的ArrayList(JSON mediatype)。 轉到該地址會返回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)中創建新的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" });

PS。 如果這不起作用,請發布您的AJAX調用返回的JSON。

編輯:這是JSTL的處理方式:創建一個JSF或JSP,它不返回完整的HTML頁面,但只是你想要的#service div。 讓我們調用doit.jsp頁面。 現在我們可以使用ajax將它放在#service div中。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM