How to send JSON back in Java?
•
Java
I have a problem using gzip compression and jQuery together It seems that this may be the way I send JSON responses in my struts operations I use the next code to send back my JSON object
public ActionForward get(ActionMapping mapping,ActionForm form,HttpServletRequest request,HttpServletResponse response) {
JSONObject json = // Do some logic here
RequestUtils.populateWithJSON(response,json);
return null;
}
public static void populateWithJSON(HttpServletResponse response,JSONObject json) {
if(json!=null) {
response.setContentType("text/x-json;charset=UTF-8");
response.setHeader("Cache-Control","no-cache");
try {
response.getWriter().write(json.toString());
} catch (IOException e) {
throw new ApplicationException("IOException in populateWithJSON",e);
}
}
}
Is there a better way to send JSON in Java Web applications?
Solution
replace
try {
response.getWriter().write(json.toString());
} catch (IOException e) {
throw new ApplicationException("IOException in populateWithJSON",e);
}
Try this
try {
json.write(response.getWriter());
} catch (IOException e) {
throw new ApplicationException("IOException in populateWithJSON",e);
}
This avoids creating a string, and jsonobject writes bytes directly to the writer object
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码
