#jolt
Вопрос:
У меня в основном есть 2 разных условия, которые могут повлиять на значение ключа в выводе.
У меня есть следующий ввод:
{
"state": "PRESENT",
"sample": {
"type": "OP"
}
}
У меня есть следующие спецификации:
[
{
"operation": "shift",
"spec": {
"state": {
"PRESENT": {
"#ANSWER1": "answer"
},
"*": {
"$": "answer"
}
},
"sample":{
"type":{
"OP":{
"#ANSWER2": "answer"
}
}
}
}
}
]
Теперь, если вы видите, что оба условия верны, конечный результат выглядит следующим образом. Оба значения представлены в виде массива
{
"answer" : [ "ANSWER1", "ANSWER2" ]
}
Но я ищу выход, основанный на втором условии. В основном переопределите существующее значение в атрибуте «ответ» :
{
"answer" : "ANSWER2"
}
Ответ №1:
Вы можете добавить еще одно преобразование сдвига
{
"operation": "shift",
"spec": {
"*": { "1": { "@": "amp;2" } }
}
}
к существующей спецификации, чтобы выбрать второй(элемент с индексом 1
) элемент.
Если бы был выбран левый элемент массива, то можно было бы предпочесть использовать преобразование мощности
{
"operation": "cardinality",
"spec": {
"*": "ONE"
}
}