У меня есть два файла JSON a.json
и b.json
. Содержимое файла .json представляет собой объект JSON, а внутри b.json - массив. Я хочу добавить / обновить поле status
в каждом mappings
в файле a.json путем извлечения значения из файла b.json.
a.json:
{
"title": 25886,
"data": {
"request": {
"c": 46369,
"t1": 1562050127.376641
},
},
"rs": {
"mappings": {
"12345": {
"id": "12345",
"name": "test",
"customer_id": "11228",
},
"45678": {
"id": "45678",
"name": "abc",
"customer_id": "11206",
}
}
}}
b.json:
[
{
"status": "pending",
"extra": {
"name": "test"
},
"enabled": true,
"id": "12345"
},
{
"status": "not_started",
"extra": {
"name": "abc"
},
"enabled": true,
"id": "45678"
}
]
Ниже мой ожидаемый результат:
{
"title": 25886,
"data": {
"request": {
"c": 46369,
"t1": 1562050127.376641
},
},
"rs": {
"mappings": {
"12345": {
"id": "12345",
"name": "test",
"customer_id": "11228",
"status":"pending"
},
"45678": {
"id": "45678",
"name": "abc",
"customer_id": "11206",
"status":"not_started"
}
}
}}
В этом ожидаемом файле JSON у нас есть поле status
, значение которого извлекается из файла b.json на основе соответствующего значения id
. Как это сделать, используя jq
?