Eu tenho um JSON:
[
{
"datetime": "2025-04-07T18:03:50+03:00",
"title": "Theme Drive",
"content": {
"adPlacement": {
"id": 4289485,
"name": "otclick_OLV_apart_jan_mar_In_stream",
"banners": {
"href": [
"https://api.adriver.ru/banners/12037384",
"https://api.adriver.ru/banners/12043208",
"https://api.adriver.ru/banners/11887226",
"https://api.adriver.ru/banners/12028437"
]
}
}
}
}
]
Quero construir o json abaixo: separar os elementos do array em objetos com propriedade banner_id
e armazenar os dígitos como valor depoisbanners/
Espero esta saída:
[
{
"banner_id": 12037384
},
{
"banner_id": 12043208
},
{
"banner_id": 11887226
},
{
"banner_id": 12028437
}
]
Escrevi:
[
{
"operation": "shift",
"spec": {
"*": {
"content": {
"adPlacement": {
"banners": {
"href": {
"*": "[&]"
}
}
}
}
}
}
}
]
Acabei de obter um array (não como esperado) e também estou com dificuldades com banner_ids. Para dividir, tentei algo assim: "banner_id": "=split('banners/', @(1,&))"
, mas retorna um erro. Como obter a saída esperada?
Atualizar
Segundo cenário com um objeto dentro href
:
[
{
"datetime":"2025-04-07T18:03:50+03:00",
"title":"Theme Drive",
"content":{
"adPlacement":{
"id":4289485,
"name":"otclick_OLV_apart_jan_mar_In_stream",
"banners":{
"href":"https://api.adriver.ru/banners/12037384"
}
}
}
}
]
Esperado:
[
{
"banner_id": 12037384
}
]
Meu resultado:
[
{
"operation": "shift",
"spec": {
"*": {
"content": {
"adPlacement": {
"banners": {
"href": {
"*": {
"*banners/*": {
"$(0,2)": "[&2].banner_id"
}
},
"*banners/*": {
"$(0,2)": "[0].banner_id"
}
}
}
}
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"*": {
"banner_id": "=toInteger"
}
}
}
]