List(數組)轉Json_js版_Java版_v1.0.0

代碼

Js版

  • 先看看效果:
    在這裏插入圖片描述

list數據

const list = [
      {"id":"1","parentId":"0","name":"逍遙子","value": + `9101212` },
      {"id":"2","parentId":"1","name":"無崖子","value": + `9101212` },
      {"id":"3","parentId":"1","name":"天山童姥","value": + `9101212` },
      {"id":"4","parentId":"1","name":"李秋水","value": + `9101212` },
      {"id":"5","parentId":"1","name":"小師妹","value": + `9101212` },
      {"id":"6","parentId":"2","name":"虛竹","value": + `9101212` },
      {"id":"7","parentId":"2","name":"丁春秋","value": + `9101212` },
      {"id":"8","parentId":"3","name":"虛竹-黑化","value": + `9101212` },
      {"id":"9","parentId":"4","name":"夢姑","value": + `9101212` },
      {"id":"10","parentId":"5","name":"王夫人","value": + `9101212` },
      {"id":"11","parentId":"10","name":"王語嫣","value": + `9101212` },
      {"id":"12","parentId":"7","name":"摘星子","value": + `9101212` },
      {"id":"13","parentId":"7","name":"阿紫","value": + `9101212` },
      {"id":"14","parentId":"2","name":"蘇星河","value": + `9101212` },
      {"id":"15","parentId":"14","name":"函谷八友","value": + `9101212` },
      {"id":"16","parentId":"14","name":"無名氏","value": + `9101212` },
    ]

遞歸 也就是說向子節點(子孩子)寫入key,子孩子的name作爲key

const getJsonTree = function(data, parentId) {

        let itemArr = {};
        for (let i = 0; i < data.length; i++) {

          const node = data[i];

          const nodeName = node.name

          if (node.parentId === parentId) { // 是這個節點的子孩子

            let child = getJsonTree(data, node.id)

            itemArr[nodeName] = child;

            // console.log(`JSON化child === `, JSON.stringify(child))
            if (JSON.stringify(child) === `{}`) {
              // console.log(`空json`, node.value, itemArr)
              itemArr[nodeName] = node.value
            }

          }
        }

        return itemArr
      }

執行 由list生成級聯Json

console.log(JSON.stringify(getJsonTree(list,'0')))

效果

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章