Я не понимаю, почему вы так обеспокоены этим.Подстановочные знаки не будут работать для обновления JSON.Это так просто.
И еще одна вещь, eval
будет работать только с чистым JS.Json-Path - это НЕ чистый JS.
Может быть, это объяснит это более четко.
Если * set jsonExample $..book[0].something = 13
работает, пожалуйста, предположите, что это ошибка.Не надейся на это.В этом случае это может сработать, потому что код является максимально устойчивым.Но это может не сработать в других случаях или в будущих версиях каратэ.
Все приведенное ниже будет работать:
* def jsonExample =
"""
{
"store": {
"book": [
{
"category": "fiction",
"author": "Evelyn Waugh",
"title": "Sword of Honour",
"something": 12.99
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
"""
# all these will work
* set jsonExample $.store.book[0].something = 13
* match jsonExample.store.book[0].something == 13
* set jsonExample.store.book[0].something = 14
* match jsonExample.store.book[0].something == 14
* eval jsonExample.store.book[0].something = 15
* match jsonExample.store.book[0].something == 15
Я действительно надеюсь, что это проясняет !!