如何让Jolt的=toDouble转换始终保留一位小数?
解决Jolt转换后保留一位小数的问题
直接用=toDouble转换后,JSON会自动把1.0简化为1——因为二者数值等价。要强制保留一位小数,得结合formatNumber操作指定格式,具体Jolt规格如下:
[ { "operation": "modify-overwrite-beta", "spec": { "myValue": ["=toDouble", "@(1,myValue)", "=formatNumber", "0.0"] } } ]
逻辑说明:
- 第一步
=toDouble把字符串类型的"1"转换成数值类型 - 第二步
=formatNumber搭配格式符0.0,强制让结果保留一位小数,即使小数位是0也不会省略
测试验证:
输入:
{"myValue": "1"}
输出:{"myValue": 1.0}
如果输入是带多位小数的字符串(比如{"myValue": "1.23"}),输出会是{"myValue": 1.2},按格式保留一位小数;要是需要保留更多位,调整格式符即可,比如0.00就是保留两位小数。
内容的提问来源于stack exchange,提问作者Emilia Paredes
相关产品推荐
相关产品推荐

