修改后端返回的json树形数据的字段名

有时候后端返回的数据字段名不是我们想要的,这时就可以通过JSON.parse和JSON.stringify进行修改

1.后端返回的数据

 data: [
        {
          title: "江西",
          id: 1,
          children: [
            {
              title: "南昌",
              id: 1000,
              children: [
                {
                  title: "青山湖区",
                  id: 10001
                },
                {
                  title: "高新区",
                  id: 10002
                }
              ]
            },
            {
              title: "九江",
              id: 1001
            },
            {
              title: "赣州",
              id: 1002
            }
          ]
        }
]

2.把title这个字段名改为name

this.data = JSON.parse(JSON.stringify(this.data).replace(/"title"/g,'"name"'))

3.这样我们就能得到我们想要的字段名了

data: [
        {
          name: "江西",
          id: 1,
          children: [
            {
              name: "南昌",
              id: 1000,
              children: [
                {
                  name: "青山湖区",
                  id: 10001
                },
                {
                  name: "高新区",
                  id: 10002
                }
              ]
            },
            {
              name: "九江",
              id: 1001
            },
            {
              name: "赣州",
              id: 1002
            }
          ]
        }
]

后端返回树形数据通常是一个嵌套的数组或对象结构,每个节点包含id、name等基本信息以及children属性表示其子节点。为了在前端将这种数据转换成实际的数据结构(如JavaScript中的Tree或TreeNode),你可以按照以下步骤操作: 1. **解析数据**: 首先,你需要解析接收到的JSON响应。这通常涉及到`JSON.parse()`方法,如果数据已经是字符串形式。 ```javascript let treeData = JSON.parse(treeJsonString); ``` 2. **创建数据结构**: 创建一个树节点类(例如TreeNode)用于存储每个节点的信息,并设置一个属性(比如`parent`)来关联父节点。 ```javascript class TreeNode { constructor(id, name, children = []) { this.id = id; this.name = name; this.children = children; } } ``` 3. **构建树**: 使用递归函数遍历数据,将每个节点添加到适当的层级上。 ```javascript function buildTree(data) { return data.reduce((tree, node) => { const newNode = new TreeNode(node.id, node.name); if (node.children.length > 0) { newNode.children = node.children.map(childNode => buildTree(childNode)); } tree[node.id] = newNode; return tree; }, {}); } const treeStructure = buildTree(treeData); ``` 4. **初始化视图**: 然后可以使用这个数据结构来渲染前端的树形视图,如React组件的虚拟DOM或Vue的组件。 ```javascript // 假设你是在React中 function Tree({ tree }) { return Object.values(tree).map(node => ( <li key={node.id}> {node.name}{' '} <ul>{node.children.map(child => <Tree key={child.id} tree={tree} />)}</ul> </li> )); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值