0

フロントエンドに3つのJSONを渡したい。3つすべてを個別に渡すことができます。私はそれが機能しているかどうかを確認するためにこれを行いました。

私はそれをこのようにします:

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

ここにある投稿の1つで、create 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を渡すにはどうすればよいですか。

ありがとう、

4

4 に答える 4

0
 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)
  {
  }
于 2013-09-21T10:58:20.877 に答える
0

3 つのオブジェクトの 1 つの配列を送信してみてください。[Obj1 , Obj2 , Obj3]

返された 3 つのオブジェクトが以前に送信されたオブジェクトに依存する場合 (たとえばObj2Obj1.Xプロパティが true または false に依存する場合、3 つの個別の呼び出しを行うことができます)

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

var firstResult.done(function(Obj1){

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

   ... other calls
});
于 2012-12-07T19:52:23.850 に答える
0

適切な形式の JSON および AJAX 要求/応答では、1 回の呼び出しで 1 つの JSON 文字列が配信されます。

もちろん、これらの JSON 文字列は、許容される JSON 構造内で必要に応じて構成できます。あなたの場合、JSON 配列ラッパー内で 3 つの JSON オブジェクトを構成することはまったく問題ありません。

おそらくあなたの唯一の問題はここにあると思います:

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

作成するStringjsonは既に文字列であるため、toString()再度呼び出す必要はありません。ただ行う:

String json = "["+ json1.toString() + "," + json2.toString() + "," + json3.toString() + "]"; 
response.getWriter().write(json);
于 2012-12-07T19:53:27.537 に答える