commenter JSON avant l'envoi au client
Question
3 en ressort contrôleur
@RequestMapping(value = "/employee/{id}", RequestMethod.GET)
public @ResponseBody Employee getEmployee(@PathVariable long empID) {
Employee employee = employeeService.getByID(empID);
return employee;
}
quel fichier dois-je modifier, de sorte que le JSON retournerait comme ci-dessous
au lieu de retourner "['foo', 'bar']"
retourner ce "/*['foo', 'bar']*/"
(avec un commentaire)?
La solution
Sous les couvertures, les délégués Spring MVC à un HttpMessageConverter
pour effectuer la sérialisation. Dans ce cas, Spring MVC invoque un MappingJacksonHttpMessageConverter
construit sur le Jackson processeur JSON . Cette implémentation est automatiquement activée lorsque vous utilisez le mvc. Élément entraîné annotation configuration présente Jackson dans votre classpath
Ainsi, vous pouvez fournir votre propre implémentation de HttpMessageConverter
en remplaçant
protected void writeInternal(Object o,
HttpOutputMessage outputMessage)
throws IOException,
HttpMessageNotWritableException
méthode de MappingJacksonHttpMessageConverter , qui pourrait serveur dans le but.
Autres conseils
Note rapide au sujet de commentaires:. Commentaires ne sont pas (hélas!) Une partie de la spécification JSON, afin de les utiliser à l'aide des moyens JSON non standard
Pour ce que ça vaut la peine, il est possible de faire des parseurs JSON (y compris Jackson) commentaires de poignée (pour Jackson, voir http://wiki.fasterxml.com/JacksonFeaturesParser ); ainsi que les écrire (nécessité d'utiliser 'JsonGenerator.writeRaw ( "/ ... /")').
Mais peut-être Spring a un moyen de réponse décorez, car ce serait probablement plus simple à mettre en œuvre.