如何使用逗号对 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 的前两个答案中描述了两种可能的方法,它们是:
使用您描述的逻辑实现自定义 JSON deserializer:[…]然后删除所有逗号[…]
使用本地化的 DefaultDeserializationContext
根据给定的 Locale
解析字符串中包含的数字
我创建了一个允许数值的前端。当然,用户应该输入的值应该严格是一个数值。那不是小数,没有逗号,没有 $,没有其他值,如果需要,我可以在 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 的前两个答案中描述了两种可能的方法,它们是:
使用您描述的逻辑实现自定义 JSON deserializer:[…]然后删除所有逗号[…]
使用本地化的
DefaultDeserializationContext
根据给定的Locale
解析字符串中包含的数字