Есть ли промежуточное программное обеспечение или пакет npm для преобразования плоского файла JSON в иерархические данные json?

Я хочу преобразовать плоский Json в иерархический или сначала преобразовать excel в Json, а затем попытаться создать иерархию объектов JSON. Я хочу преобразовать flat-Json в иерархический объект json n-го уровня.

Is there any middleware  that conver Flat JSON to hirerachy JSON object.
{ "Name": "SAM", "Department": "CO", "Year": "2018"},
{ "Name": "SAM", "Address": "Mumbai", "Type": "Permanent"},
{ "Name": "John", "Department": "CE", "Year": "2018" },
{ "Name": "John", "Address": "Delhi", "Type": "Permanent" }

Expected Out-Put:

[{    
    "Name" : "SAM",   
    "Department": "CO",
    "Year": "2018"
    "children" : [{
                "Name": "SAM", 
                "Address": "Mumbai", 
                "Type": "Permanent"                
            }]
},
{    
    "Name" : "John",   
    "Department": "CE",
    "Year": "2018"
    "children" : [{
                "Name": "John", 
                "Address": "Delhi", 
                "Type": "Permanent"                
            }]
}]

person Samadhan Virkar    schedule 14.12.2018    source источник
comment
Вы действительно хотите, чтобы внешняя библиотека делала это?   -  person Federico klez Culloca    schedule 14.12.2018
comment
что ты уже испробовал? Подсказка: это довольно простой, но неэффективный цикл Array.reduce(). Добавьте свойство детей, отфильтруйте исходный массив для всех этих детей, добавьте их в свойство, повторите. Ирония заключается в том, что с исходным массивом легче работать, чем с вложенным.   -  person Shilly    schedule 14.12.2018
comment
Возможный дубликат Иерархический json из квартиры с родительским идентификатором   -  person Shilly    schedule 14.12.2018
comment
@FedericoklezCulloca Спасибо .. Да, я хочу внешний пакет, такой как npm xls-to-json   -  person Samadhan Virkar    schedule 14.12.2018


Ответы (1)


Вот функция, которую вы ищете

var arry = [{ "Id": "1", "Name": "abc", "Parent": "", "attr": "abc" },
           { "Id": "2", "Name": "abc", "Parent": "1", "attr": "abc" },
           { "Id": "3", "Name": "abc", "Parent": "2", "attr": "abc" },
           { "Id": "4", "Name": "abc", "Parent": "2", "attr": "abc" }];
function convert(array){
  var map = {};
  for(var i = 0; i < array.length; i++){
    var obj = array[i];
    obj.items= [];

    map[obj.Id] = obj;

    var parent = obj.Parent || '-';
    if(!map[parent]){
        map[parent] = {
            items: []
        };
    }
    map[parent].items.push(obj);
  }
  return map['-'].items;
}

var r = convert(arry);

Результат

[{
    "Id" : "1",
    "Name" : "abc",
    "Parent" : "",
    "attr" : "abc",
    "children" : [{
                "Id" : "2",
                "Name" : "abc",
                "Parent" : "1",
                "attr" : "abc",
                "children" : [{
                            "Id" : "3",
                            "Name" : "abc",
                            "Parent" : "2",
                            "attr" : "abc",
                            "children" : []
                        }, {
                            "Id" : "4",
                            "Name" : "abc",
                            "Parent" : "2",
                            "attr" : "abc",
                            "children" : []
                        }]
            }]
}]

Скопировано из https://stackoverflow.com/a/15376430/1826429.

person Goldy    schedule 14.12.2018
comment
Спасибо .. Вы правы, но мне нужен пакет npm или промежуточное ПО, поэтому я могу передать свой объект json промежуточному ПО и получить ожидаемый результат, который очистит или сократит мой код. как npm xls-to-json большое спасибо... - person Samadhan Virkar; 14.12.2018
comment
Есть ли какое-либо промежуточное программное обеспечение, которое преобразует Flat JSON в объект JSON для найма. - person Samadhan Virkar; 21.12.2018