簡體   English   中英

如何將多個JSON從Servlet傳遞到Javascript

[英]How do I pass multiple JSON from servlet to Javascript

我想將3 JSON傳遞到前端。 我可以單獨通過所有3個。 我這樣做是為了檢查它是否有效。

我這樣做:

response.getWriter().write(json.toString());

我在這里的一篇文章中讀到,您可以放置​​創建一個json數組並將該數組發送到Ajax調用。

所以我嘗試這樣做:

String json = "["+ json1.toString() + "," + json2.toString() + "," + json3.toString() + "]"; 
response.getWriter().write(json.toString());

在房子的客戶端:

$.ajax({
        data: {param1: 'p1', param2: 'p2', param3: 'p3', param4: 'p'},
        dataType: 'json',
        url: './GetDataServlet',
        type: 'POST',
        success: function(data) {
            var   data1 = data[0];
            var   data2 = data[1]; 
            var   data3 = data[2];
$.each(data1 , function(i, val) {
 $("#personal_data").append("<p> val.firstname </p>")
 $("#personal_data").append("<p> val.lastname </p>")
)};
$.each(data2 , function(i, val) {
 $("#department_data").append("<p> val.departmentid </p>")
 $("#demartment_data").append("<p> val.departmentname </p>")
)};

//Not attaching the entire code, because it's quite long. :) 
        },
        error: function() {
            alert("An error occured while attempting fetch data.");
        }
    });

進行$ .ajax調用時,如何將多個JSON傳遞給客戶端。

謝謝,

您可以嘗試發送三個對象的單個數組。 [Obj1 , Obj2 , Obj3]

如果返回的三個對象取決於先前發送的對象(例如Obj2取決於Obj1.X屬性為true或false,則可以進行三個單獨的調用

var firstResult = $.ajax({  
    url : firstUrl  
    ... other details
});

var firstResult.done(function(Obj1){

  if(Obj1.X){
    $.ajax({  
      url : secondUrl  
      ... other details
    });

   ... other calls
});

在格式正確的JSON和AJAX請求/響應中,1個調用傳遞1個JSON字符串。

當然,您可以根據需要在允許的JSON結構中編寫這些JSON字符串。 就您而言,在JSON數組包裝器中組成三個JSON對象絕對沒有錯。

我認為也許您唯一的問題在這里:

String json = "["+ json1.toString() + "," + json2.toString() + "," + json3.toString() + "]"; 
response.getWriter().write(json.toString());

您構建的String json已經是一個字符串,因此您無需再次對其調用toString() 做就是了:

String json = "["+ json1.toString() + "," + json2.toString() + "," + json3.toString() + "]"; 
response.getWriter().write(json);

我試圖做同樣的事情。 我想將三個json對象傳遞給我的JavaScript。 我試圖將三個json對象放入一個json數組中並傳遞它,但這使情況變得非常復雜。

我發現傳遞由我選擇的“%”字符分隔的字符串要容易得多。

    String json1 = "....";
    String json2 = "....";
    String json3 = "...";
    String toApp = json1 + "%" + json2 + "%" + json3;

然后在javascript中,您可以使用

var split = line.split("%");

最后,可以通過split [0],split [1]和split [2]制作一個json對象。

 var c1= new Object();
c1.property1="test";
c1.property2="test";

var c2= new Object();
c2.property1="test";
c2.property2="test";

var data = { 'c1': c1, 'c2': c2 };
var parameters1 = JSON.stringify(data);

In ajax call pass parameters1 as data.
  [WebMethod]
  public static bool TestMethod(Object c1, Object c2)
  {
  }

暫無
暫無

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

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