Я пытаюсь изменить глубоко вложенный объект JSON из одной структуры в другую.Чтобы иметь возможность использовать его в правильном формате для работы с библиотекой jQuery Nestable.
У меня есть исходный формат:
{
"scanned": {
"a3": {
"value": 906
},
"value": 23667
},
"total": {
"printed": {
"black": {
"value": 44
},
"color": {
"value": 57
},
"value": 101
},
"value": 101
}
}
Требуемый формат JSON для работыс библиотекой это:
[{
"id": "scanned: 23667",
"children": [{
"id": "a3: 906"
}]
}, {
"id": "total: 101",
"children": [{
"id": "printed: 101",
"children": [{
"id": "black: 44"
}, {
"id": "color: 57"
}]
}]
}]
Я пытался обойти это дерево с помощью рекурсивной функции, но до сих пор не достиг желаемого результата:
Object.keys(o).forEach(function (k) {
if (o[k] !== null && typeof o[k] === 'object') {
if(parent) {
console.log(parent);
if(!o.children) {
o.children = [];
}
o.children.push({id: k + ": " + o[k].value})
} else {
o.id = k + ": " + o[k].value
}
_this.iter(o[k], k);
return;
}
});
Может кто-нибудь, пожалуйста, предоставьте мнерабочий пример?