Peut Jackson être configuré pour la garniture avant/après les espaces de toutes les propriétés de la chaîne?

Exemple JSON (notez que la chaîne des espaces):

{ "aNumber": 0, "aString": "string   " }

Idéalement, le deserialised instance aurait un aString propriété avec une valeur de "chaîne" (c'est à dire sans les espaces). Cela semble être quelque chose qui est sans doute pris en charge, mais je ne le trouve pas (par exemple dans DeserializationConfig.Fonction).

Nous sommes à l'aide de Spring MVC 3.x si un Ressort à base de solution serait aussi bien.

J'ai essayé la configuration du Printemps WebDataBinder basée sur la suggestion dans un post sur le forum mais il ne semble pas fonctionner lors de l'utilisation d'un Jackson message converter:

@InitBinder
public void initBinder( WebDataBinder binder )
{
    binder.registerCustomEditor( String.class, new StringTrimmerEditor( " \t\r\n\f", true ) );
}
  • Êtes-vous sûr à 100%, les espaces ne sont pas à la valeur réelle? Parce que je n'ai jamais vu Jackson ce faire. Ou dites-vous que la classe que vous passez à Jackson a ces espaces intentionnellement, et vous voulez mettre en place Jackson pour le supprimer pour vous?
  • Je pensais que c'était assez clairement déclaré que les données des espaces à partir de la source et il veut configurer Jackson pour supprimer les espaces à droite sur la désérialisation.
  • C'est exact, nous n'avons aucune raison valable de garder de fuite (ou à la tête) les espaces présents dans l'arrivée d'un message JSON.
InformationsquelleAutor penfold | 2011-07-27