如何使用逗号对 JsonFormat 长值进行格式化

How to JsonFormat long value with commas

我创建了一个允许数值的前端。当然,用户应该输入的值应该严格是一个数值。那不是小数,没有逗号,没有 $,没有其他值,如果需要,我可以在 UI 上控制它。

但是,如果用户确实在此数字框中输入了自由文本,我正在寻找一种简单的方法将 123,456 转换为 123456。

我正在使用 Spring 5,Spring MVC,如果我传递给它“123456”,REST 控制器工作正常,但是,因为 POJO 有一个长值,我想知道我是否可以使用 Jackson FasterXML 使用 @JsonFormat 注释来获取 123,456 并将其转换为 123456????

假设有人输入 123,456,789.00 作为值,我们知道这可以转换为 long,所以我想知道我们是否可以在此字段上使用 @JSonFormat 批注使其转换为 123456789???

我可以在 POJO 的 setter 中做些什么来完成这项工作吗?

我想我也可以只更改我的 POJO 以接受字符串值,然后删除所有逗号、所有小数、删除 $、删除任何其他非数字值,然后就是包罗万象。

谢谢!

我不敢告诉你,但是 @JsonFormat 没有办法做到这一点。

问题 How to deserialize a float value with a localized decimal separator with Jackson 的前两个答案中描述了两种可能的方法,它们是: