karate - 如何使用要保留元素顺序的空手道比较两个 json 对象?
问题描述
我需要比较在比较时订单保留的 2 个 JSON 对象。由于空手道比赛忽略了元素的顺序,我只是想知道在空手道中是否有办法做到这一点。
解决方案
不是直接的,它从来不需要,因为 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']
推荐阅读
- java - 如何在sql java android中插入字符串
- c# - 过滤父子集合
- typescript - 扩展接口时出错,(接口属性的)类型与(接口的)类型没有共同的属性
- c# - 如何在 WPF Net5 应用程序中创建单个文件?
- css - 如何在 React 中设置与主页的正文图像不同的样式?
- oracle - 在带有 Oracle 18c 的 Windows 10 上无法读取外部表或使用 utl_file.get_line 读取
- python - 在管理表单中为自定义字段加载模板
- sql - 查询sqlalchemy.Table中指定id后的用户列表
- javascript - 替代已弃用的 e.which,以防止输入非数字字符?
- git - 远程参考更改