2017-07-17 3 views
0

ich Code unten bin mit meinem Java-Objekt in JSON konvertieren:Jackson Anzeige nicht in Pretty Print-Format

ObjectMapper mapper = new ObjectMapper(); 
    mapper.registerModule(new SnapshotModule()).setTimeZone(timeZone) 
      .enable(SerializationFeature.INDENT_OUTPUT) 
      .disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS) 
      .disable(SerializationFeature.FAIL_ON_EMPTY_BEANS) 
      .disable(DeserializationFeature.ADJUST_DATES_TO_CONTEXT_TIME_ZONE) 
      .enable(JsonGenerator.Feature.WRITE_NUMBERS_AS_STRINGS) 
      .enable(MapperFeature.SORT_PROPERTIES_ALPHABETICALLY); 
    String respJson = mapper .writerWithDefaultPrettyPrinter().writeValueAsString(obj) 

Dies ist auf die Feder-Controller RequestMapping zurückgeführt wird, die wie erwähnt wird, unter

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "application/json") 
@ResponseBody 

Wenn ich diese Antwort im Logger drucke, kann ich das Prettyprint-JSON-Format zusammen mit den Einrückungen sehen. Wenn jedoch ich den Rest URL in Browser drücken Sie die Antwort zu sehen ist, mit \ r \ n Zeichen gesehen anstelle der tatsächlichen neuen Linien mit Einbuchtung so -

[ {\r\n \"XXX\" : {\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : { },\r\n \"XXX\" : true\r\n },\r\n \"XXX\" : {\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\"\r\n },\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\",\r\n \"XXX\" : \"XXX\"\r\n} ]" 

Kann jemand bitte auf Hilfe, was mit falsch ist mein Ansatz. Ich habe sogar versucht, mit der Gson-Bibliothek und das Ergebnis ist das gleiche. Bitte beachten Sie, dass, da das Objekt, das ich in json konvertieren möchte, dynamisch ist, es keine Möglichkeit gibt, Anmerkungen in pojo zu verwenden.

+0

'\ r \ n' ist die Methode, die von Windows verwendet wird, um eine Unterbrechungslinie zu erstellen. Der Editor, mit dem Sie die Protokolldatei lesen, konvertiert sie in neue Zeilen. – davidxxx

+0

vereinbart, aber warum ist Broswer nicht in der Lage, schönen Druck zu zeigen und stattdessen \ r \ n als Zeichen anzuzeigen. Ich habe versucht, diese Zeichen durch "" zu ersetzen, aber das macht sie einfach verschwinden. Der JSON wird immer noch nicht als schöner Ausdruck angesehen, sondern in einer Zeile –

Antwort

0

[SOLUTION] -

Ich könnte eine Lösung für diese herauszufinden, welche wierd sein aussieht, aber es hat geklappt.

modifizierte ich den Frühling RequestMapping wie folgt:

@RequestMapping(value = "/{xxx}/{xxx}/{xxx}/", method = RequestMethod.GET, produces = "text/plain") 

So, jetzt seine wie meine Antwort eine reine Textdarstellung von JSON ist.

Ich hatte versucht, Anwendung/Json, wenn ich Spring Web/MVC verwendet. Aber irgendwie scheint application/json nicht für Spring Boot zu funktionieren.