簡體   English   中英

如何將 JSON 數組從服務器發送到客戶端,即(java 到 AJAX/Javascript)?

[英]How to send JSON array from server to client, i.e. (java to AJAX/Javascript)?

我的 JSON.java 文件中有以下 JSON 數組:

ArrayList array=new ArrayList();
array.add("D");
array.add("A");
array.add("L");

我想將數組發送到 AJAX.jsp 中的 AJAX 腳本。 我知道如何通過例如接收 AJAX 中的文本

document.getElementById("txtHint").innerHTML=xmlhttp.responseText;

但我不知道如何將數組從服務器發送到客戶端! 感謝你的幫助

you basically use certain classes in java like the ones defined here: http://json.org/java/ convert the final output to a json string and then send it to javascript there you convert the json string back to json using eval or probably使用一個名為 json2.js 的庫,你就准備好了。

這是相同的代碼:

JSONObject obj=new JSONObject();
  obj.put("name","foo");
  obj.put("num",new Integer(100));
  obj.put("balance",new Double(1000.21));
  obj.put("is_vip",new Boolean(true));
  obj.put("nickname",null);
  StringWriter out = new StringWriter();
  obj.writeJSONString(out);
  String jsonText = out.toString();
  System.out.print(jsonText);

更多http://code.google.com/p/json-simple/wiki/EncodingExamples

好的首先:

ArrayList array=new ArrayList();
array.add("D");
array.add("A");
array.add("L");
JSONArray array = new JSONArray();

這無法編譯...您有一個重復的變量數組;-)

第二:創建一個 servlet/Struts Action/etc,其中包含創建數組的代碼。 然后使用 JSON 庫將其轉換為 JSON 。 最后,將字符串放入您的 servlet/Struts Action/等的響應中。

使用 JQuery 來減輕您在 Ajax 調用上的工作量。 它將幫助您調用 Ajax 以及從 http 響應中收到的字符串轉換回 Json。

前任:

您的 ajax 調用應該是這樣的(使用 JQuery)

$.getJSON("http://yourserver/JSONServlet",
    function(data){
           alert (data) // this will show your actual json array
      });
    });

你的 servlet 應該是這樣的:

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import net.sf.json.JSONArray;

public class JSONServlet extends  HttpServlet{
  public void doGet(HttpServletRequest request,
  HttpServletResponse response)
   throws ServletException,IOException{
 JSONArray arrayObj=new JSONArray();
 arrayObj.add("D");
 arrayObj.add("A");
 arrayObj.add("L");
 arrayObj.add("D");
 arrayObj.add("A");
 arrayObj.add("TEST");
  PrintWriter out = response.getWriter();
  out.println(arrayObj);
  for(int i=0;i<arrayObj.size();i++){
  out.println(arrayObj.getString(i));
  }
 }
}

考慮使用數據綁定 JSON 庫,例如JacksonGSON之類的數據綁定 JSON 庫,而不是使用 org.json 的准系統庫

新 ObjectMapper().writeValue(response.getOutputStream(), 數組);

這就是你所需要的。

對於更簡單的處理,與原始 servlets 相比,JAX-RS 服務(Jersey、RESTeasy、CXF)可以進一步簡化處理,以減少您需要的代碼。 JAX-RS + JSON 是在 Java 上實現 web 服務的現代方式,因此現在學習它可能是有意義的。

最簡單的方法是在 java 文件中構造一個 json 字符串並將該 json 字符串返回給客戶端。

Javascript 提供了一個eval()方法,它將 json 字符串反轉為 json ZA8CFDE6331BD59EB2AC96F8911C46.

然后,您可以執行您需要的任何操作。

暫無
暫無

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

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