JSON 无限级添加 Key Value

Posted wgy0528

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JSON 无限级添加 Key Value相关的知识,希望对你有一定的参考价值。

初始数据

let data = [
      
        "PositionGuid": "9c24277c-a1f7-4b3c-9284-877f6fba3d33",
        "TemplateGuid": "ab1aa04d-c43f-4956-b90b-0bd104d3e3ac",
        "DevNameID": "123",
        "DevName": "气象站",
        "Parent": "0",
        "DevLevel": 1,
        "Children": [
              
                "PositionGuid": "92ab0f66-c806-4c33-80fc-a6d5a853e86b",
                "TemplateGuid": "ab1aa04d-c43f-4956-b90b-0bd104d3e3ac",
                "DevNameID": "12",
                "DevName": "配电箱",
                "Parent": "9c24277c-a1f7-4b3c-9284-877f6fba3d33",
                "DevLevel": 2,
                "Children": [
                      
                        "PositionGuid": "7053861a-91be-4bcd-8872-35884cfa936b",
                        "TemplateGuid": "ab1aa04d-c43f-4956-b90b-0bd104d3e3ac",
                        "DevNameID": "11",
                        "DevName": "配电柜",
                        "Parent": "92ab0f66-c806-4c33-80fc-a6d5a853e86b",
                        "DevLevel": 3,
                        "Children": []
                      
                     ]
                   
                    ]
                  
                ]
created()
// 是用来赋初始值和建立与上级的关联
  data.forEach(node =>
    console.log(node);
    this.parentToChild(node, (n) =>
      State是我们添加的Key值
      n.State = 0;
        )
      );
  this.tableData = data;
methods:
  parentToChild(node, fn)
  // 递归了要做什么,是通过fn来实现。递归的逻辑是固定的
  // 具体做什么是不固定的,但是递归的过程是相同的 通过传fn,就实现了递归过程的重用
    fn(node);
    if (node.Children && node.Children.length > 0)
      node.Children.forEach(n =>
        this.parentToChild(n, fn)
     )
    
  
技术图片

以上是关于JSON 无限级添加 Key Value的主要内容,如果未能解决你的问题,请参考以下文章

python无限遍历,实现在多维嵌套字典列表元组的JSON中获取数据

无限级分类批量导入csv-记录

python字典无限遍历

JSON数据格式生成无限级树结构

如果使用 object.value 而不是 object,则角度递归模板列表将变为无限递归

如何在 Flutter 中添加无限滚动?