Преобразование данных по средствам JS
Доброго времени суток!
Я получаю вебхук
[
{
"body": {
"tg_all_photo_massiv":
"{"status": true,
"photo": ["https://files.salebot.pro/uploads/message_files/98.jpg",
"https://files.salebot.pro/uploads/message_files/85.jpg"],
"kolvo": 2}"
}
]
Далее этот код обрабатывает JS
const result = []
for (const item of $("Webhook").all()) {
const photo_arr = JSON.parse(item.json.body.tg_all_photo_massiv)
for (const photo of photo_arr.photo) {
result.push({
json: {
url: photo
}
})
}
}
return result;
В результате получается то что мне надо!
[
{
"url": "https://files.salebot.pro/uploads/message_files/98.jpg"
},
{
"url": "https://files.salebot.pro/uploads/message_files/85.jpg"
}
]
ВОПРОС! Получая вебхук который указан ниже.. Как мне правильно написать код чтобы преобразовать в нужный результат
[
{
"body": {
"g_sheet_id": "1pWeLnCCjo42G50IUAdvhSTwFdVoaw055nIENDENFtAY",
"delete_button": "[2, 6]"
}
}
]
Нужный результат
[
{
"row": "2"
},
{
"row": "6"
}
]
Я попытался сделать по аналогии... Но я явно сделал что-то не то(( плз.. подскажите как правильно
const result = []
for (const item of $("Webhook").all()) {
const rows_arr = JSON.parse(item.json.body)
for (const rows of rows_arr.delete_button) {
result.push({
json: {
row: rows
}
})
}
}
return result;
Ответы (1 шт):
Автор решения: SwaD
→ Ссылка
Если в массиве объектов, в ключе delete_button будет приходить массив, то это можно реализовать следующим образом:
const data = [
{
"body": {
"g_sheet_id": "1pWeLnCCjo42G50IUAdvhSTwFdVoaw055nIENDENFtAY",
"delete_button": [2, 6]
}
},
{
"body": {
"g_sheet_id": "1pWeLnCCjo42G50IUAdvhSTwFdVoaw055nIENDENFtAY",
"delete_button": [3, 8]
}
},
{
"body": {
"g_sheet_id": "1pWeLnCCjo42G50IUAdvhSTwFdVoaw055nIENDENFtAY",
"delete_button": [12, 16]
}
}
];
const res = [];
data.forEach(items => {
const del = items.body.delete_button;
del.forEach(item => res.push({ row: item }))
})
console.log(res);
Если будет приходить строка, то потребуется некая промежуточная функция преобразования строки к массиву или замена второго цикла forEach на что то иное.