Estoy planeando utilizar rutas materializadas en MongoDB para representar un árbol y necesito convertir las rutas materializadas de nuevo en un árbol JSON.Construir un árbol JSON desde rutas materializadas
ex. // Materializadas ruta
var input = [
{"id": "0", "path": "javascript" },
{"id": "1", "path": "javascript/database" },
{"id": "2", "path": "javascript/database/tree" },
{"id": "3", "path": "javascript/mvc" },
{"id": "4", "path": "javascript/mvc/knockout.js"},
{"id": "5", "path": "javascript/mvc/backbone.js"},
{"id": "6", "path": "c++" },
{"id": "7", "path": "c++/c0xx"},
{"id": "8", "path": "c++/c0xx/lambda expressions"},
{"id": "9", "path": "c++/c0xx/vc10" }
];
El resultado sería:
[
{
"id": "0",
"name": "javascript",
"children": [
{
"id": "1",
"name": "database",
"children": [
{
"id": "2",
"name": "tree",
"children": []
}
]
},
{
"id": "3",
"name": "mvc",
"children": [
{
"id": "4",
"name": "knockout.js",
"children": []
},
{
"id": "5",
"name": "backbone.js",
"children": []
}
]
}
]
},
{
"id": "6",
"name": "c++",
"children": [
{
"id": "7",
"name": "c0xx",
"children": [
{
"id": "8",
"name": "lambda expressions",
"children": []
},
{
"id": "9",
"name": "vc10",
"children": []
}
]
}
]
}
]
He encontrado Convert delimited string into hierarchical JSON with JQuery que funciona muy bien.
Y también encontré Build tree from materialized path que está escrito en Ruby y usa recursividad. Estoy interesado y es curioso de ver esto implementado en Javascript y me pregunto si hay alguna persona que tenga fluidez en Ruby y Javascript a la que le gustaría reescribirla. Probé un conversor de Ruby a JS, pero el resultado fue incomprensible.
Gracias, Neville
Gracias. Terminé usando el código de http://stackoverflow.com/questions/6232753/convert-delimited-string-into-hierarchical-json-with-jquery que funciona bien para mis necesidades. Algunos comentarios sobre cómo funciona el código serían bienvenidos. – nevf