JSON de origem:
{
"data": {
"campaign": {
"104": {
"day": {
"2024-07-01": {
"metrics": {
"reach_impression": "6.0000000",
"unique_impression": 6,
"impression": 9
}
},
"2024-07-03": {
"metrics": {
"reach_impression": "19.0000000",
"unique_click": 1,
"reach_click": "2.0000000"
}
}
}
},
"106": {
"day": {
"2024-07-01": {
"metrics": {
"unique_click": 29,
"reach_click": "29.0000000",
"click": 35
}
}
}
},
"124": {
"day": {
"2024-07-01": {
"metrics": {
"unique_impression": 472,
"event": 1,
"unique_click": 25,
"click": 49,
"progress_100": 1,
"impression": 690
}
},
"2024-07-03": {
"metrics": {
"unique_click": 14,
"reach_click": "52.0000000",
"click": 33,
"unique_impression": 28,
"impression": 32
}
}
}
}
},
"metrics": {
"click_average": 22107.6666666667
}
},
"metadata": {
"campaign": {
"104": {
"channel_id": 1,
"real_end_date": null,
"channel_label": "Display",
"real_start_date": "2024-01-11 21:32:25",
"label": "5ka_Promo_veer_2024"
},
"124": {
"channel_id": 1,
"real_end_date": null,
"channel_label": "Display",
"real_start_date": "2024-06-04 21:34:23",
"label": " X5Club_Evergreen_June24"
}
}
}
}
Abaixo, data.campaign
há alguns números como 124, 104, 106. Esses números - ids de campanhas. Preciso armazenar esses valores dentro do campo id
, então temos o campo day
e dentro desse campo valores como 2024-07-01
e eu quero armazenar esses valores como report_date
campo. Também abaixo desse nível, temos metrics
o objeto. Dentro desse objeto, quero pegar todos os pares de chave-valor.
O principal problema para mim é como armazenar apenas números como chaves da maneira correta.
JSON esperado:
[
{
"id": 124,
"report_date": "2024-07-01",
"unique_impression": 472,
"event": 1,
"unique_click": 25,
"click": 49,
"progress_100": 1,
"impression": 690
},
{
"id": 124,
"report_date": "2024-07-03",
"unique_click": 14,
"reach_click": "52.0000000",
"click": 33,
"unique_impression": 28,
"impression": 32
},
{
"id": 104,
"report_date": "2024-07-01",
"reach_impression": "6.0000000",
"unique_impression": 6,
"impression": 9
},
{
"id": 104,
"report_date": "2024-07-03",
"reach_impression": "19.0000000",
"unique_click": 1,
"reach_click": "2.0000000"
},
{
"id": 106,
"report_date": "2024-07-01",
"unique_click": 29,
"reach_click": "29.0000000",
"click": 35
}
]
Você pode usar a seguinte transformação na qual $ wildcards (no(s) lado(s) esquerdo(s)) replicam as chaves de objeto obtidas de seus respectivos níveis e constroem os pares chave-valor por meio dos literais de nó folha declarados no(s) lado(s) direito(s), como: