【问题标题】:JSON object not being returned by jsp pagejsp页面未返回JSON对象
【发布时间】:2014-04-30 03:10:11
【问题描述】:

我试图从这个 jsp 页面返回一个 JSON 对象。但我不知道为什么它没有提供所需的结果。这是我的 jsp 页面:

<%@page import="net.sf.json.JSONException"%>
<%@page import="net.sf.json.JSONArray"%>
<%@page import="net.sf.json.JSONObject"%>
<%@page contentType="application/json" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="application/json; charset=UTF-8">
    <title>JSP Page</title>
</head>
<body>
    <%

            JSONObject json      = new JSONObject();
            JSONArray  employeeslist = new JSONArray();
            JSONObject employee;
            try
            {
                int count = 15;

                for (int i=0 ; i<count ; i++)
                {
                    employee = new JSONObject();
                    employee.put("name"     , "Decepticons" + i);
                    employee.put("id"        , "1999" + i);

                    employeeslist.add(employee);
                 }
                json.put("Employeeslist", employeeslist);
            }
                catch (JSONException jse)
                { 

                }

            out.write(json.toString());
    %>
</body>
</html>

请帮我找出这段代码中的错误。

我的ajax调用这个jsp:

<script type="text/javascript">
$(document).ready(function() {
    $("input[type=button]").click(function () {
        $.ajax({
        url: 'ValidEmployeeList.jsp',
        dataType: 'json',
        success: function(data) {
            //alert(data);
            alert(JSON.stringify(data));
        },
         error: function() {
            alert('error');
        }
    });

    });
});
</script>

【问题讨论】:

    标签: java json jsp


    【解决方案1】:

    您将 Json 内容类型与 html 格式混合。尝试在开始和结束时删除 html 标签:

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="application/json; charset=UTF-8">
    <title>JSP Page</title>
    </head>
    <body>
    

    </body>
    </html>
    

    最后永远不要使用空的 catch 块。您可能会错过一些真正原因的重要异常。

    【讨论】:

      【解决方案2】:

      除了创建新的空 JSONObject 之外,永远不会分配 json 变量。您只使用员工和员工列表。但你永远不会把它们打印出来。

      【讨论】:

      • 如果你说的是这个 ajax 代码,那么我编辑了它。它会给出错误警报。
      • 我也使用 json tostring() 打印出 JSONObject
      • 我可以看到 out.write(json.toString());
      猜你喜欢
      • 2011-01-26
      • 1970-01-01
      • 2012-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多