如何解决JMESPath将字符串强制转换为数字,然后进行大于0的过滤,将得到“无效令牌数字:“ 0”“错误消息
我想获取pretaxCost > 0
数据,但是遇到如下问题:
我的JMESPath
[?pretaxCost.to_number(@) > 0]
演示数据:
[
{
"pretaxCost": "7.19999999999999962124684594298729134465020251809619367122650146484375E-8","instanceName": "demo202009210002"
},{
"pretaxCost": "0","instanceName": "demo20092701"
},{
"pretaxCost": "0.2399999999999999911182158029987476766109466552734375","instanceName": "demo965546464"
},{
"pretaxCost": "0.06278620880000000681331329133172403089702129364013671875","instanceName": "weihanacrdemo"
},{
"pretaxCost": "2.16000000000000001872295179138061538282045148662291467189788818359375E-7","instanceName": "092d02d45a464c1291715701"
}
]
jmespath.min.js:2 Uncaught ParserError: Invalid token (Number): "0"
我想过的事情:
我认为pretaxCost是字符串类型,所以我必须将类型转换为数字,因此我使用to_number
函数,然后使用表达式 > 0
获得我期望的结果,但这是行不通的。
,我尝试仅选择pretaxCost to_number的工作方式如下例所示:
JSFiddle - Code Playground
解决方法
我阅读了文档JMESPath Examples — JMESPath
我尝试使用下面的表达式,它起作用了
[?pretaxCost.to_number(@) > `0`]
系统必须使用
`number`
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。