我正在评估使用J2H(http://json2html.com/examples/)来渲染JSON结构。
我的JSON是复杂的树,有许多重复(递归)结构。
我的问题是如何定义可以在JSON树的多个级别应用的转换,当它找到相同类型/结构的节点时(我可以添加类型或类属性以了解哪些节点属于同一类型) )。
示例:
+ root type=node
+ child type=attribute
+ child type=node
+ child type=attribute
+ child type=attribute
+ child type=node_primitive
+ child type=primitive
+ child type=attribute
+ child type=node
在该树上,我们有类型:node,attribute,node_primitive和primitive,它们可以位于树的不同级别。并且相同类型的节点将具有相同的结构。
答案 0 :(得分:1)
您应该能够使用内联函数和嵌套转换(http://json2html.com/examples/#example-basic-nested)
例如,如果您希望基于json类型的字段生一个特定的孩子,则可以执行以下操作
var transforms = {
'attribute':{'<>':'div','text':'Attribute'},
'node':{'<>':'div','text':'Node'},
'list':{'<>':'li','html':function(){
return( json2html.transform(this,transforms[this.type]) );
}},
var data = [
{'type':'node'},
{'type':'attribute'}
];
document.write( json2html.transform(data,transforms.list) );
如果您的JSON结构具有多个深度级别,则可以在根节点的内联函数中递归调用以下内容。
json2html.transform(this.child,transforms.list)