Найти элемент по идентификатору в JSON
Необходимо преобразовать на основе значения элемента input.json
{
"Result": {
"owner": {
"name": "test user"
},
"Components": [
{
"id": "123-456-789"
}
],
"123-456-789": {
"temp": {
"emip": "abc",
"teto": "123"
}
}
}
}
преобразовать JSON
[
{
"operation": "shift",
"spec": {
"Result": {
"Components": {
"*": {
"id": "compId"
}
},
"compId": {
"@": "component"
}
}
}
},
{
"operation": "default",
"spec": {
"compId": null
}
}
]
Ожидаемый результат будет
"123-456-789": {
"temp": {
"emip": "abc",
"teto": "123"
}
}
но результат ответа ниже, когда я жестко кодирую значение с 123-456-789, тогда я получаю значение, но мне нужно принять значение динамически.
{
"compId" : "123-456-789"
}
1 ответ
Решение
Спекуляция
[
{
"operation": "shift",
"spec": {
"Result": {
"Components": {
"*": { // components array index
"id": {
"*": { // match any value of id
// go back up the tree 5 levels, and then
// lookup a key based on the value of the "id"
// and write that to the output at at that same
// key
"@(4,&)": "&1"
}
}
}
}
}
}
}
]