我的 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;
但我不知道如何将数组从服务器发送到客户端! 感谢您的帮助
最佳答案
确定首先:
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));
}
}
}
关于java - 如何将 JSON 数组从服务器发送到客户端,即(java 到 AJAX/Javascript)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7083951/