我必须在我的servlet中使用json数组。
我想获取json数组值并使用ajax打印到jsp页面。
下面是代码
JSONArray htags = new JSONArray();
htags.add("#abc");
htags.add("#xyz");
htags.add("#emc");
htags.add("#netapp");
//top trends
JSONArray trends = new JSONArray();
trends.add("pass");
trends.add("horiz");
trends.add("software");
trends.add("banana");
JSP
我在这里收到错误消息。
$.ajax({
url : "SerlvetToJsp",
dataType : 'json',
error : function() {
alert("Error");
},
success : function(data) {
alert(data);
}
});
答案 0 :(得分:0)
请参阅,如果要将其从servlet传递给jsp,则不需要创建request
(ajax),因为servlet和jsp
都存在于服务器端。您只需设置json数组作为请求属性或会话属性,并在jsp中显示并显示(带循环)。否需要ajax。
如果您需要使用同步调用获取数据:
在servlet中
PrintWriter out = response.getWriter();
out.println(htags);
我不会用另一个完整的例子弄乱SO,请看这个SO帖子:How to send JSON array from server to client, i.e. (java to AJAX/Javascript)?
答案 1 :(得分:0)
试试这个
JSONArray htags = new JSONArray();
htags.add("#abc");
htags.add("#xyz");
htags.add("#emc");
htags.add("#netapp");
//top trends
JSONArray trends = new JSONArray();
trends.add("pass");
trends.add("horiz");
trends.add("software");
trends.add("banana");
response.setContentType("application/json");
response.setCharacterEncoding("utf-8");
String jsons = "["+htags+","+trends+"]"; //Put both objects in an array of 2 elements
out.print(jsons);
并在你的jsp页面上
$.ajax({
url : "SerlvetToJsp",
dataType : 'json',
contentType:"application/json",
error : function() {
alert("Error");
},
success : function(data) {
var data1=data[0],
var data2=data[2],
alert(data1[0]);
}
});
答案 2 :(得分:0)
Servlet可以使用它将json数组或json对象发送到客户端。
JSONArray jsonArray = [{:}, {:}];
response.getWriter.write(jsonArray.toString());
在JSP页面中,此方法将请求JSON调用到Servlet并使用匿名函数捕获json数组或json对象(JSON.parse用于将字符串转换为json对象或json数组)方法。
$("button").click(function(){
$.get("ServletToJSP",function(data,status){
alert("Data: " + JSON.parse(data) + "\nStatus: " + status);
});
});
答案 3 :(得分:-1)
在servlet中:
String uri = request.getRequestURI();
if (uri.equalsIgnoreCase(uri)) {
response.setContentType("application/json");
/* get the json array */
response.getWriter().write(array.toJSONString());
}
jquery的:
$('#buttonid').on('click', function() {
var url="your url";
$.ajax({
type : 'POST',
url : url,
data : null,
error : function(xhr, status, error) {
alert("error");
},
success : function(data) {
alert("success");
$.each(data, function(key, val) {
console.log(val);
}
});
});