Я бы хотел
"1": {
"id": "1",
"type": "select",
"label": "country :",
"choices": {
"1": {
"label": "Canada CAN",
"value": "",
},
"2": {
"label": "United States USA",
"value": ""
}
}
}
для производства
"1": {
"id": "1",
"type": "select",
"label": "country :",
"choices": {
"1": {
"label": "Canada",
"value": "CAN",
},
"2": {
"label": "United States",
"value": "USA"
}
}
}
К настоящему времени у меня есть двухэтапное решение, состоящее из sed-подобной функции
def do_extract:
if .value | test("^$") then
(.value = (.label | capture(".* (?<code>...)")).code) | .label = (.label | capture("(?<name>.*) ...$").name)
else
.
end;
и прямой доступ к поддереву []."1"."choices"|keys_unsorted as $key|map_values(do_extract)
, но я должен вручную скопировать и вставить вывод вместо оригинального «выбора».
Есть ли способ выполнить функцию, но все же распечатать окружающие данные?
Спасибо