package org.argeo.server.json;
import java.io.IOException;
+import java.io.StringWriter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
private JsonFactory jsonFactory = new JsonFactory();
private ObjectMapper objectMapper = new ObjectMapper();
- private Boolean prettyPrint = true;
+ private Boolean prettyPrint = false;
+
+ // private String encoding = "UTF8";
public void serialize(Object obj, HttpServletRequest request,
HttpServletResponse response) {
JsonGenerator jsonGenerator = null;
try {
response.setContentType("application/json");
+ // response.setHeader("Content-Encoding", "UTF-8");
+
+ StringWriter stringWriter = null;
+ if (log.isTraceEnabled()) {
+ stringWriter = new StringWriter();
+ JsonGenerator jsonGeneratorLog = jsonFactory
+ .createJsonGenerator(stringWriter);
+ jsonGeneratorLog.useDefaultPrettyPrinter();
+ objectMapper.writeValue(jsonGenerator, obj);
+ jsonGeneratorLog.close();
+ }
+ // jsonGenerator = jsonFactory.createJsonGenerator(response
+ // .getOutputStream(), JsonEncoding.valueOf(encoding));
jsonGenerator = jsonFactory.createJsonGenerator(response
.getWriter());
+
if (prettyPrint)
jsonGenerator.useDefaultPrettyPrinter();
objectMapper.writeValue(jsonGenerator, obj);
jsonGenerator.close();
+
+ if (stringWriter != null) {
+ if (log.isTraceEnabled())
+ log.debug(stringWriter.toString());
+ response.getWriter().append(stringWriter.toString());
+ }
+
} catch (Exception e) {
throw new ArgeoServerException("Cannot serialize " + obj, e);
} finally {