【发布时间】:2020-05-08 21:47:46
【问题描述】:
我需要在比较时比较订单保留的 2 个 JSON 对象。由于空手道比赛忽略了元素的顺序,我只是想知道空手道是否有办法做到这一点。
【问题讨论】:
标签: karate
我需要在比较时比较订单保留的 2 个 JSON 对象。由于空手道比赛忽略了元素的顺序,我只是想知道空手道是否有办法做到这一点。
【问题讨论】:
标签: karate
不是直接的,它永远不需要,因为 JSON 键可以是任何顺序,例如 Map。
但您可以在转换为(规范化)字符串后进行精确匹配:
* def foo = { a: 1, b: 2 }
* string str1 = foo
* string str2 = { "a": 1, "b": 2 }
* assert str1 == str2
您还可以随时获取键/值的有序列表:
* def vals = karate.valuesOf(foo)
* match vals == [1, 2]
* def keys = karate.keysOf(foo)
* match keys == ['a', 'b']
【讨论】: