你如何从Java Servlet中返回一个JSON对象

你如何从Java servlet中返回一个JSON对象。

以前在用servlet进行AJAX时,我返回了一个字符串。 是否有需要使用的JSON对象类型,或者您是否返回看起来像JSON对象的字符串,例如:

String objectToReturn = "{ key1: 'value1', key2: 'value2' }";

我完全按照你的建议(返回一个String )。

你可能会考虑设置MIME类型来表明你正在返回JSON,但是(根据这个其他的stackoverflow帖子,它是“application / json”)。


将JSON对象写入响应对象的输出流。

您还应该如下设置内容类型,它将指定您要返回的内容:

response.setContentType("application/json");
// Get the printwriter object from response to write the required json object to the output stream      
PrintWriter out = response.getWriter();
// Assuming your json object is **jsonObject**, perform the following, it will return your json object  
out.print(jsonObject);
out.flush();

首先将JSON对象转换为String 。 然后,将它写入响应编写器以及application/json内容类型和UTF-8的字符编码。

假设您使用Google Gson将Java对象转换为JSON字符串,以下是一个示例:

protected void doXxx(HttpServletRequest request, HttpServletResponse response) {
    // ...

    String json = new Gson().toJson(someObject);
    response.setContentType("application/json");
    response.setCharacterEncoding("UTF-8");
    response.getWriter().write(json);
}

就这样。

也可以看看:

  • 如何使用Servlets和Ajax?
  • 什么是正确的JSON内容类型?
  • 链接地址: http://www.djcxy.com/p/1247.html

    上一篇: How do you return a JSON object from a Java Servlet

    下一篇: Uncaught SyntaxError: Unexpected token :