Je voudrais avoir une bidirectionnel JSON pour la sérialisation Java
Je suis en utilisant avec succès le Java en JSON pour JQuery chemin... (@ResponseBody
)
par exemple
@RequestMapping(value={"/fooBar/{id}"}, method=RequestMethod.GET)
public @ResponseBody FooBar getFooBar(
@PathVariable String id,
HttpServletResponse response , ModelMap model) {
response.setContentType("application/json");
...
}
et Dans JQuery-je utiliser
$.getJSON('fooBar/1', function(data) {
//do something
});
cela fonctionne bien (par exemple, les annotations de travail déjà, merci à tous les answerers)
Cependant, comment dois-je faire l' inverse chemin d'accès: avoir JSON être sérialisé à un Objet Java en arrière en utilisant RequestBody?
peu importe ce que j'essaie, je ne peux pas obtenir quelque chose comme ceci fonctionne:
@RequestMapping(value={"/fooBar/save"}, method=RequestMethod.POST)
public String saveFooBar(@RequestBody FooBar fooBar,
HttpServletResponse response , ModelMap model) {
//This method is never called. (it does when I remove the RequestBody...)
}
J'ai Jackson configuré correctement (il sérialise sur le moyen de sortir) et j'ai MVC définir comme des annotations poussé bien sûr
Comment puis-je le faire fonctionner? est-il possible? ou est le Printemps / JSON / JQuery est unidirectionnelle (out)?
Mise à jour:
J'ai changé ce réglage Jackson
<bean id="jsonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter" />
<!-- Bind the return value of the Rest service to the ResponseBody. -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<util:list id="beanList">
<ref bean="jsonHttpMessageConverter" />
<!-- <ref bean="xmlMessageConverter" /> -->
</util:list>
</property>
</bean>
À la (presque similaire, on) a suggéré
<bean id="jacksonMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter"></bean>
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="jacksonMessageConverter" />
</list>
</property>
</bean>
Et il semble fonctionner! Je ne sais pas ce que fait exactement le truc, mais ça marche...