私は、いくつかのJSONデータをbootstrap-treeviewのために要求されたフォーマットに変換する最良の方法を理解しようとしています。私の最初の考えは、すべてを通過して修正する何らかの再帰関数を作成することでしたが、これを実現するには本当に難しいことがあります。どんなアドバイスも大歓迎です!ここでjsonをブートストラップツリービューフォーマットに準拠させる
私のサービスによって返されるデータのコンソールログ:
Object
England: Object
London: Object
Bayerische Staatsbibliothek: Object
Cod. arab. 1251: Array[1]
0: Object
key1: "adflkjadf",
key2: "adflkjadfk",
key3: "adlkfjadf",
__proto__: Object
length: 1
text: "Cod. arab. 1251"
__proto__: Array[0]
Cod. arab. 1252: Array[1]
Cod. arab. 1253: Array[1]
Cod. arab. 1254: Array[1]
Cod. arab. 1255: Array[1]
Cod. arab. 1256: Array[1]
Cod. arab. 1257: Array[1]
Cod. arab. 1258: Array[1]
Cod. arab. 1259: Array[1]
Cod. arab. 1260: Array[1]
Germany: Object
Munich: Object
Bayerische Staatsbibliothek: Object
Cod. arab. 1251: Array[1]
0: Object
key1: "adflkjadf",
key2: "adflkjadfk",
key3: "adlkfjadf",
__proto__: Object
length: 1
text: "Cod. arab. 1251"
__proto__: Array[0]
Cod. arab. 1252: Array[1]
Cod. arab. 1253: Array[1]
Cod. arab. 1254: Array[1]
Cod. arab. 1255: Array[1]
Cod. arab. 1256: Array[1]
Cod. arab. 1257: Array[1]
Cod. arab. 1258: Array[1]
Cod. arab. 1259: Array[1]
Cod. arab. 1260: Array[1]
ここでフォーマットはブートストラップ・ツリービューのニーズです:
var tree = [
{
text: "Parent 1",
nodes: [
{
text: "Child 1",
nodes: [
{
text: "Grandchild 1"
},
{
text: "Grandchild 2"
}
]
},
{
text: "Child 2"
}
]
},
{
text: "Parent 2"
},
{
text: "Parent 3"
},
{
text: "Parent 4"
},
{
text: "Parent 5"
}
];
ここでは、これを達成するために再帰関数での私の試みです:
function format_for_treeview(node) {
for (var key in node) {
// skip loop if the property is from prototype
if (!node.hasOwnProperty(key)) continue;
if (typeof node === 'object') {
format_for_treeview(node[key]);
if (Array.isArray(node)) {
node[key]['text'] = node[key]['bibliography_text'];
} else {
node[key]['text'] = key;
}
}
}
}