Como enviar JSON de volta com JAVA?

Estou com problemassando a compressão Gzip e o JQuery junt. Parece que isso pode ser causado pela maneira como estou enviando respostas JSON em minhas Ações do Struts. Eu uso o próximo código para enviar meus objetos JSON de volta.

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);
        }                               
    }
 }

Existe uma maneira melhor de enviar JSON em um aplicativo da web Jav

questionAnswers(4)

yourAnswerToTheQuestion