У меня есть JSON, как показано ниже.
store.book [*]. Author [*]. Share
Мне нужно обновить значение ресурсас (текущее значение + 10).Если значение акции равно 9,2, то обновленное значение должно быть (19,2).Новое значение также может быть сложной логикой.Итак, в основном получаем текущее значение и обновляем новое значение на основе логики.
{
"store": {
"book": [
{
"category": "reference",
"title": "Sayings of the Century",
"price": 8.95,
"author": [
{
"name": "Mike Waugh",
"share": "9.2"
},
{
"name": "Shane Warne",
"share": "8.2"
}
]
},
{
"category": "fiction",
"title": "Sword of Honour",
"price": 9.0,
"author": [
{
"name": "Steve Bro",
"share": "9.6"
},
{
"name": "Mikky waugh",
"share": "9.7"
}
]
},
{
"category": "fiction",
"title": "Moby Dick",
"isbn": "0-553-21311-3",
"price": 8.99,
"author": [
{
"name": "Evelyn Dough",
"share": "6.6"
},
{
"name": "Mark waugh",
"share": "5.7"
}
]
}
],
"bicycle": {
"color": "red",
"price": 19.95
}
},
"expensive": 10
}
У меня есть ответ на обновление для одного элемента.
DocumentContext json = JsonPath.using(configuration).parse(jsonInput);
String jayPath = "$..book[0].author[0].share";
String tagValue = "10"+json.get(jayPath);
System.out.println(json.set(jayPath, tagValue).jsonString());
Любой способ обновлениядля всех акций с новым значением, основанным на логике.
Также перепутано с циклом for.
$..book[*] ---> get length
for each,
$..book[0].author[*] ------> length
for each
$..book[0].author[0].share
$..book[0].author[1].share
Есть ли другой лучший способ?