2017-08-30 3 views
2

Lorsque j'essaie de convertir un objet ayant un champ entier avec la valeur , le fichier JSON converti contient 0 au lieu de 0000. Comment puis-je configurer ObjectMapper de Jackson pour convertir 0000 en 00000?Comment convertir un objet en JSON d'un champ entier ayant des zéros en tête en utilisant Jackson?

+2

0000 n'est pas un nombre décimal entier. Je ne pense pas que ce soit possible du tout, bien que vous puissiez le stocker comme une chaîne – baao

+0

Vous ne pouvez pas faire cela parce que '0000' n'est pas valide dans JSON. Voir http://www.json.org/ pour le format. – bfontaine

Répondre

3

Un 0 en tête indique un nombre octal. Par conséquent, les zéros en tête ne sont pas autorisés pour les valeurs numériques dans JSON. Voir la citation suivante de la RFC 7159:

6. Numbers

La représentation des nombres est similaire à celui utilisé dans la plupart des langages de programmation . Un nombre est représenté en base 10 en utilisant chiffres décimaux. Il contient un composant entier qui peut être précédé d'un signe moins facultatif, qui peut être suivi d'une partie fraction et/ou d'une partie exponentielle. Les zéros en tête ne sont pas autorisés.

Si vous avez besoin de zéros en tête, pensez à utiliser une chaîne.