我有以下json:
[
{
"id": 1,
"name": "Jack",
"salary": 23.03
},
{
"id": 2,
"name": "Luke",
"salary": 0.00
}
]
我需要验证小数点后只有 2 位数字。
我正在做这个:
* def salary = $response..salary
* karate.appendTo(salary)
* def strs = karate.map(salary, function(x){ return x + '' })
* match each strs == '#regex [0-9].+\\.[0-9]{2}'
当我的工资为“23.40”或“12.30”时,验证是正确的。问题是,当我有 0、2 或 3 时,验证会抛出以下错误:
我个人觉得尝试验证 JSON 中数字类型的形状是浪费时间,即使格式不同,数字也是相同的。当您尝试转换为字符串时,您无法控制小数点。例如,试试这个:
* def response = [ { "id": 1, "name": "Jack", "salary": 23.03 }, { "id": 2, "name": "Luke", "salary": 0.00 } ]
* def salaries = response.map(x => x.salary + '')
* print salaries
你得到:
[ "23.03", "0" ]
所以我想说你正在尝试的东西是不可能或不支持的。