Ich würde in Betracht ziehen, den Dienst so umzugestalten, dass Ihr Domänenobjekt anstelle von JSON-Zeichenfolgen zurückgegeben wird, und Spring die Serialisierung übernehmen zu lassen (über das, MappingJacksonHttpMessageConverter
während Sie schreiben). Ab Frühjahr 3.1 sieht die Implementierung recht ordentlich aus:
@RequestMapping(produces = MediaType.APPLICATION_JSON_VALUE,
method = RequestMethod.GET
value = "/foo/bar")
@ResponseBody
public Bar fooBar(){
return myService.getBar();
}
Bemerkungen:
Zunächst wird der <mvc:annotation-driven />
oder die @EnableWebMvc
muss hinzugefügt , um Ihre Anwendung Config.
Als Nächstes wird das Erzeugungsattribut der @RequestMapping
Anmerkung verwendet, um den Inhaltstyp der Antwort anzugeben. Folglich sollte es auf MediaType.APPLICATION_JSON_VALUE (oder "application/json"
) gesetzt werden.
Zuletzt muss Jackson hinzugefügt werden, damit jede Serialisierung und De-Serialisierung zwischen Java und JSON automatisch von Spring verarbeitet wird (die Jackson-Abhängigkeit wird von Spring erkannt und MappingJacksonHttpMessageConverter
befindet sich unter der Haube).