转自博文:《Response JSON数据返回》http://blog.csdn.net/anialy/article/details/8665471
简述:
在servlet填充Response的时候,做JSON格式的数据转换
使用的类是net.sf.json.JSONObject,传入response对象和返回的显示类,修改response,返回前台JSON格式数据
代码:
- /**
- * 以JSON格式输出
- * @param response
- */
- protected void responseOutWithJson(HttpServletResponse response,
- Object responseObject) {
- //将实体对象转换为JSON Object转换
- JSONObject responseJSONObject = JSONObject.fromObject(responseObject);
- response.setCharacterEncoding("UTF-8");
- response.setContentType("application/json; charset=utf-8");
- PrintWriter out = null;
- try {
- out = response.getWriter();
- out.append(responseJSONObject.toString());
- logger.debug("返回是 ");
- logger.debug(responseJSONObject.toString());
- } catch (IOException e) {
- e.printStackTrace();
- } finally {
- if (out != null) {
- out.close();
- }
- }
- }
例如:
try {
HttpServletRequest request = ServletActionContext.getRequest();
HttpServletResponse response = ServletActionContext.getResponse();
String selectName = new String(request.getParameter("selectName").getBytes("iso-8859-1"),"utf-8");//用request获取URL传递的中文参数,防止乱码
response.setCharacterEncoding("utf-8");
PrintWriter out = response.getWriter();
if (!selectName.equals("")) {
historyEvent = historyEventService.getHistoryEventByName(projectId, selectName);//获取对象
response.setContentType("application/json; charset=utf-8");
JSONObject responseJSONObject = JSONObject.fromObject(historyEvent); //将实体对象转换为JSON Object转换
out.print(responseJSONObject.toString());
out.flush();
out.close();
}
} catch (Exception e) {
e.printStackTrace();
}