0

我正在评估使用 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_primitive 和原始类型,它们可以位于树的不同级别。并且相同类型的节点将具有相同的结构。

4

1 回答 1

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)
于 2018-08-27T21:38:30.487 回答