1

我必须在我的 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);

            }
    });
4

4 回答 4

0

看,如果你想将它从 servlet 传递给 jsp,你不需要制作request(ajax),因为 servlet 和jsp两者都存在于服务器端。你只需将该 json 数组设置为请求属性或会话属性并在 jsp 中获取它和显示(带循环)。那里不需要ajax。

如果您需要通过同步调用获取数据:

在小服务程序中

   PrintWriter out = response.getWriter();
   out.println(htags);

我不会用另一个完整的例子来混淆 SO,请参阅这个 SO 帖子:如何将 JSON 数组从服务器发送到客户端,即(java 到 AJAX/Javascript)?

于 2013-09-10T06:24:13.717 回答
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]);

            }
    });
于 2013-09-10T07:52:32.497 回答
0

Servlet 可以使用它向客户端发送 json 数组或 json 对象。

JSONArray jsonArray = [{:}, {:}];

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

在 JSP 页面中,该方法调用请求 JSON 到 Servlet 并使用匿名函数(JSON.parse 用于将字符串转换为 json 对象或 json 数组)方法捕获 json 数组或 json 对象。

$("button").click(function(){
  $.get("ServletToJSP",function(data,status){
    alert("Data: " + JSON.parse(data) + "\nStatus: " + status);
  });
});
于 2014-02-13T09:18:27.037 回答
-1

在小服务程序中:

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);
                }
            });
    });
于 2018-03-09T11:52:44.040 回答