Как сделать рекурсивный JSON на основе переменных в JavaScript? - PullRequest
0 голосов
/ 10 июня 2019

Я работаю в Почтальоне и пишу код в javascript.У меня есть глобальная переменная с именем path, которая просто является путем, например Device / XYZ / conf_1

Мой код, который делает массив из строки:

var path = globals.path.split("/");
var len = path.length;

Теперь я хочу сделать рекурсивныйJSON, который будет использоваться в запросе тела. В этом конкретном случае должен быть JSON, подобный следующему:

var jsonPath = JSON.stringify([{
    "name": path[0],
    "type": "Group",
    "children": [{
        "name": path[1],
        "type": "Group",
        "children": [{
            "name": path[2],
            "type": "Group",
            "children": []
        }]
    }]
}]);
pm.globals.set('jsonPath', jsonPath);

Каждый индекс пути - это объект с параметрами, называемыми name, type и children (тип одинаков для всех).Более того, каждый индекс должен быть дочерним по отношению к предыдущему индексу, а их значение должно быть помещено в «имя».Конечно, это должна быть рекурсивная функция, которая автоматически создает JSON.

Спасибо за любую помощь.Хорошего дня.

1 Ответ

0 голосов
/ 10 июня 2019

Вы можете попробовать это,

var path = 'hello/1/2/3';

var paths = path.split('/');

var resultObj = paths.reduce((resultObj, content, index) => {
    var traverse = resultObj ;
    for (var i=0; i<index; i++) {
        traverse = traverse[0]['children'];
    }
    var obj = {
        name: content,
        type: 'group',
    };
    obj['children'] = [];
    traverse.push(obj);
    return resultObj;
}, []);

console.log(resultObj);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...