[英]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.