你如何从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);
}
就这样。