【问题标题】:response.getWriter.write(jsondata) returns [object Object] [duplicate]response.getWriter.write(jsondata) 返回 [object Object] [重复]
【发布时间】:2013-03-07 13:56:28
【问题描述】:

我正在尝试将 JSON 数据作为来自 servlet 的响应发送到我的 JSP 页面中的 Javascript 代码。我使用代码response.getWriter.write(jsondata); 将数据发回,其中 jsondata 是 JSON 对象。我在 Javascript 中得到的响应类似于 [object Object],这不是我需要的。有人可以帮我理解这里出了什么问题吗?

protected void doGet(HttpServletRequest request,
        HttpServletResponse response) throws ServletException, IOException {

    Map<String, Object> data = new HashMap<String, Object>();
    data.put("success", true);
    data.put("message", "Hello World!");
    data.put("param", request.getParameter("user"));

    // Write response data as JSON.
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    System.out.println(new Gson().toJson(data));
    response.getWriter().write(new Gson().toJson(data));
}

另外,请注意,当我使用 sysout 打印 json 对象时,它可以正常工作,但是当我将它写入响应对象时,它会在 Javascript 端返回 [object Object]。

【问题讨论】:

  • 您的代码对我来说似乎很好。你能详细说明[object Object]吗?您是否使用 Firebug 或任何其他类似工具检查了通过网络发送的确切内容?
  • 你能告诉我们当你在浏览器中点击这个 servlet 的 url 时会显示什么吗?

标签: jquery json servlets


【解决方案1】:

你可以使用 GSON图书馆。

Gson gson = new Gson();

String jsonString = gson.toJson(chartData);

response.setContentType("application/json");

response.getWriter().write(jsonString);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 2013-09-13
    • 2015-01-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多