Как изменить структуру JSON файла?

Как изменить структуру данного JSON файла таким образом, чтобы каждый объект JSON содержал подобный ключ "Rec" для своих дочерних элементов?
  • 21 мая 2024 г. 10:11
Ответы на вопрос 3
Для изменения структуры JSON файла таким образом, чтобы каждый объект JSON содержал ключ "Rec" для своих дочерних элементов, можно воспользоваться следующим скриптом на JavaScript:

```javascript
const fs = require('fs');

// Загрузка исходного JSON файла
const data = require('./original.json');

// Функция для добавления ключа "Rec" к каждому объекту
const addRecKey = (obj) => {
    for (let key in obj) {
        if (typeof obj[key] === 'object') {
            obj[key].Rec = 'Value';
            addRecKey(obj[key]);
        }
    }
};

// Добавление ключа "Rec" ко всем объектам
addRecKey(data);

// Сохранение измененного JSON файла
fs.writeFileSync('./new.json', JSON.stringify(data, null, 2));
```

В данном скрипте мы сначала загружаем исходный JSON файл, затем рекурсивно проходим по каждому объекту внутри JSON и добавляем ключ "Rec" со значением "Value". Наконец, сохраняем измененный JSON файл.

После запуска этого скрипта, в файле new.json будут содержаться объекты JSON с добавленным ключом "Rec" для каждого дочернего элемента.
Прочитать содержимое файла, распарсить, выполнить необходимые преобразования, превратить данные обратно в строку, записать в файл. 

Как видите, всё довольно просто.
const dirtyValue = [{"id":1,"name":"Проект1","parent":null,
"children":[{"id":3,"name":"Задача1.1","parent":1,
"children":[ {"id":2,"name":"Задача 1_1_1","parent":3,"children":[]},
{"id":8,"name":"Задача 1_1_2","parent":3, "children":[]}
]}]}];

const formatJson = item => {
    const result = { ...item,  Rec: { children: item?.children?.map?.(formatJson) } };
    delete result?.children;
    return result;
};
const value = dirtyValue.map(formatJson);
console.log(value);
Похожие вопросы