Question

J'utilise ObjectMapper de la bibliothèque Jackson pour désérialisation JSON en objets Java. J'utilise « câblage » du printemps. J'ai créé désérialiseurs personnalisés pour effectuer la conversion de chaîne JSON à POJO. Cependant, lorsque l'entrée est mauvais (. Par exemple, un certain nombre est passé comme « 124A » - caractère illégal) une désérialiseur par défaut est invoquée et des bombes avec le NumberFormatException. Y at-il un moyen d'empêcher les convertisseurs par défaut d'être appelé?

Était-ce utile?

La solution

Ok, étant donné que l'entrée n'est pas JSON valide (chiffres ne peuvent pas commencer ou contenir « $ »), désérialiseur ne sera pas appelé, et tout changement devrait appliquer à l'analyseur. Il n'y a pas de commutateurs à Jackson pour permettre ce contenu d'être considérés comme des nombres.

Si vous pouvez contrôler l'entrée, il suffit de changer la valeur à une chaîne (ajouter des guillemets doubles autour de la valeur). Parser passe alors comme JSON chaîne, et les données des composants de fixation obtenir une chance de le manipuler (JsonDeserializer).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top