首页 > 解决方案 > java脚本重命名树对象数组中的属性名称

问题描述

我需要在所有对象(父和子)中用“名称”重命名“文本”属性,API返回的对象如下:

"content": [
  [{
    "id": 1,
    "text": "hierarchy 1",
    "icon": "h",
    "children": [{
        "id": 2,
        "text": "hierarchy 11",
        "icon": "h",
        "children": []
      },
      {
        "id": 3,
        "text": "hierarchy 110",
        "icon": "h",
        "children": []
      }
    ]
  }]
]

我的 API 函数应该返回相同的结果,但在用“名称”重命名“文本”之后:

  async getTree() {
    const res = await axios.get("/api/HierarchyTree");
    return res.data.content["0"].map(item => {
      return {
        ...item,
        name: item.text
      };
    });

  }

结果应该是:

"content": [

  {
    "id": 1,
    "name": "hierarchy 1",
    "icon": "h",
    "children": [{
        "id": 2,
        "name": "hierarchy 11",
        "icon": "h",
        "children": []
      },
      {
        "id": 3,
        "name": "hierarchy 110",
        "icon": "h",
        "children": []
      }
    ]
  }
]

标签: javascriptjsonvue.jsaxios

解决方案


也许这个?

let  content = [
  [{
    "id": 1,
    "text": "hierarchy 1",
    "icon": "h",
    "children": [{
        "id": 2,
        "text": "hierarchy 11",
        "icon": "h",
        "children": []
      },
      {
        "id": 3,
        "text": "hierarchy 110",
        "icon": "h",
        "children": []
      }
    ]
  }]
]
content = JSON.parse(JSON.stringify(content[0]).replace(/"text"/g,'"name"'))
console.log(content)


推荐阅读