起因
老项目改造,使用的spring2.5,无法使用@ResponBody,如何接收以及返回JSON对象都没有思绪.
解决方法:
从request接收JSON
/**
* 从输入流中获取JSON
*
* @param request
* @return
* @throws IOException
*/
public JSONObject getJsonForIS(HttpServletRequest request) throws IOException {
BufferedReader streamReader = new BufferedReader(new InputStreamReader(request.getInputStream(), "UTF-8"));
StringBuilder responseStrBuilder = new StringBuilder();
String inputStr;
while ((inputStr = streamReader.readLine()) != null) {
responseStrBuilder.append(inputStr);
}
JSONObject resultJson = JSONObject.fromObject(responseStrBuilder.toString());
return resultJson;
}
使用response返回JSON
/**
* 将返回的数据写入输出流
*
* @param json
* @param response
*/
public void printWriter(String json, HttpServletResponse response) {
response.setContentType("text/html;charset=UTF8");
// 创建PrintWriter
PrintWriter out = null;
// 把JSON数组写到response输出流
try {
out = response.getWriter();
out.write(json);
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭流
if (out != null) {
out.close();
}
}
}