Как сравнить два json объектов с помощью Каратэ, где нужно сохранить порядок элементов? - PullRequest
1 голос
/ 08 мая 2020

Мне нужно сравнить 2 JSON объекта, порядок которых сохранился при сравнении. Поскольку матч каратэ игнорирует порядок элементов, мне просто любопытно узнать, есть ли способ сделать это в каратэ.

1 Ответ

0 голосов
/ 08 мая 2020

Не напрямую, это никогда не требуется, поскольку 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']
...