Jackson ObjectMapper avec encodage UTF-8?

y a-t-il un moyen de dire à Jackson d'utiliser L'encodage UTF-8 en utilisant ObjectMapper pour sérialiser et désérialiser des Objets?

28
demandé sur Karl Richter 2012-04-04 06:37:29

1 réponses

Jackson détecte automatiquement l'encodage utilisé dans source: selon la spécification JSON, seuls les encodages valides sont UTF-8, UTF-16 et UTF-32. Aucun autre encodage (comme le Latin-1) ne peut être utilisé. Pour cette raison, l'auto-détection est facile et se fait par analyseur -- aucune détection d'encodage n'est acceptée pour cette raison. Donc, si input est UTF-8, il sera détecté comme tel.

Pour la sortie, UTF-8 est la valeur par défaut, mais si vous l'avez explicitement souhaitez utiliser un autre encodage, vous pouvez créer JsonGenerator explicitement (avec une méthode qui prend JsonEncoding), et passez ceci à ObjectMapper.

alternativement dans les deux cas vous pouvez bien sûr construire manuellement java.io.Reader/java.io.Writer, et en faire usage de quelque encodage que vous voulez.

40
répondu StaxMan 2012-04-04 17:14:07