antd cascader 中的 json解析

新手上路,请多包涵

问题描述

antd开发cascader过程中,后台返回给我的json是这样的:

{"content":[{"id":1,"code":"1001","pid":0,"nameCn":"网关","nameEn":"gateway"},{"id":2,"code":"1002","pid":0,"nameCn":"网桥","nameEn":"bridge"},{"id":3,"code":"1003","pid":0,"nameCn":"终端","nameEn":"terminal"},{"id":4,"code":"1004","pid":3,"nameCn":"耳标","nameEn":"ear tag"},{"id":5,"code":"1005","pid":3,"nameCn":"水位监测终端","nameEn":"water level monitoring terminal"},{"id":6,"code":"1006","pid":3,"nameCn":"电子通风器","nameEn":"electronic ventilator"},{"id":7,"code":"1007","pid":1,"nameCn":"网关","nameEn":"gateway"},{"id":8,"code":"1008","pid":2,"nameCn":"WiFi 网桥","nameEn":"WIFI bridge"}],"status":"OK","errorCode":null,"errorMsg":null}

你期待的结果是什么?实际看到的错误信息又是什么?

首先根据pid=0筛选出1级类目,然后再根据1级类目的id是否等于其他的pid筛选出2级,value是id,lable是nameCn,最后希望得到的数据格式:

coptions = [
  {
    value: '1',
    label: '网关',
    children: [
      {
        value: '7',
        label: '网关',
      },
    ],
  },
  {
    value: '2',
    label: '网桥',
    children: [
      {
        value: '8',
        label: 'WIFI 网桥',
      },
    ],
  },
  {
    value: '3',
    label: '终端',
    children: [
      {
        value: '4',
        label: '耳标',
      },
      {
        value: '5',
        label: '水位监测终端',
      },
      {
        value: '6',
        label: '电子通风器',
      },
    ],
  },
]

我自己之前用filter筛选出pid>0和小于0的两个数组,后续不知道要怎么写,请教各位,谢谢

阅读 1.2k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题