位置: IT常识 - 正文

vue3中前端处理不同数据结构的JSON(vue前端开发常见问题)

编辑:rootadmin
vue3中前端处理不同数据结构的JSON

        有时候,后端返回的JSON数据格式,是前端不需要的格式类型,这时,要么让后端修改,你要什么格式,那么让后端大哥哥给你返回什么格式。但是有时候不尽人意,后端大哥哥让你自己转换,此时就甩给前端了,只能在前端自己处理了。

目录

1.对后端数据的字段值/字段进行操作

2.处理多层级的数据结构

3.对JSON的字段进行排序 

4.实际案例


1.对后端数据的字段值/字段进行操作

推荐整理分享vue3中前端处理不同数据结构的JSON(vue前端开发常见问题),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue前端开发常见问题,vue3微前端,前端 vue,vue前端代码实例,vue3微前端,vue前端项目实战,vue3微前端,vue3微前端,内容如对您有帮助,希望把文章链接给更多的朋友!

后端的JSON格式:

//后端返回的数据格式var data = ref([{id: '00111322',name: 'zs01',age: 18},{id: '00035565644',name: 'ls02',age: 20}])

1.对字段的值进行更改

//返回的格式var data1 = data.value.map(res => {return {...res, //...使用es6语法,表示每一个对象,这里指的就是 {id: '00111322',name: 'zs01',age: 18}id: Number(res.id), //把字符串转换数字类型age: res.age + 1, //给每一个人加一岁name: res.name.substring(0, 2) //把name的值截取2位}})console.log(...data1) //...表示返回每一个元素

效果 

2.对字段进行操作

//返回的格式var data1 = data.value.map(res => {return {...res, //...使用es6语法,表示每一个对象,这里指的就是 {id: '00111322',name: 'zs01',age: 18}id: Number(res.id), //把字符串转换数字类型age: res.age + 1, //给每一个人加一岁name1: res.name.substring(0, 2), //把name的值截取2位,并且需要name1字段mark:res.id+res.name}})console.log(...data1) //...表示返回每一个元素

效果 

2.处理多层级的数据结构

后端的JSON格式:

//后端返回的数据格式var data = ref([{title: '一号楼',key: '100',children: [{title: '一单元',key: '110',children: [{title: '房间1',key: '111'},{title: '房间2',key: '112'}]}]}])

1.修改字段操作

//把title和key,分别改成id和name,一一对应起来,返回的格式 ,使用递归的方式function formatData(data1) {data1.forEach(res => {res.id = res.key;res.name = res.title;delete res.key;delete res.title;if (res.children) {formatData(res.children)}})}formatData(data.value) //调用console.log(...data.value) //...表示返回每一个元素console.log(JSON.stringify(data.value)) //返回字符串

效果

 

2.修改字段的值操作

//在最后一个字段title中,把前面的数据加上function formatData(data1, text) {data1.forEach(res => {if (!res.children) {res.title = text + res.title}if (res.children) {text += res.title;formatData(res.children, text)}})}formatData(data.value, '') //调用console.log(...data.value) //...表示返回每一个元素console.log(JSON.stringify(data.value)) //返回字符串vue3中前端处理不同数据结构的JSON(vue前端开发常见问题)

效果

 

3.对JSON的字段进行排序 

后端JSON数据格式:

//后端返回的数据格式var data = ref([{title: '一号楼',key: '100',children: [{title: '一单元',key: '110',children: [{title: '房间1',key: '111'},{title: '房间2',key: '112'}]}]}, {title: '二号楼',key: '200',children: [{title: '二单元',key: '210',children: [{title: '房间1',key: '211'},{title: '房间2',key: '212'}]}]}])

根据key的值排序

//根据根据key的值排序const compare = p => (m, n) => n[p] - m[p]; //简写排序,可以参考JavaScript中sort() 方法 //m[p] - n[p]升序 n[p] - m[p] 降序function formatData(data1, sortField) { //key:需要排序的字段data1.sort(compare(sortField));data1.forEach(res => {if (!res.children) {return;} else {formatData(res.children, sortField);}});}formatData(data.value, 'key') //调用,根据key的值排序console.log(...data.value) //...表示返回每一个元素console.log(JSON.stringify(data.value)) //返回字符串

效果,降序排列

 

4.实际案例

1.在使用uCharts时,经常需要进行数据转换

2.把res转成res1格式,因为res1是需要的

3.定义 res

let res = ref([{"name": "的方式是大多数","value": 6},{"name": "yqwuwiyvui","value": 3},{"name": "sdsfsdf","value": 2},{"name": "wewerw","value": 6}])

4.定义res1和res1s,因为res1s是res1中series的值

let res1 = ref({categories: [],series: []})let res1s = ref({name: "",data: []})

5.转换

res.value.forEach((va) => {res1.value.categories.push(va.name)res1s.value.data.push(va.value)})res1s.value.name = "目标值"res1.value.series.push(res1s.value)chartData.value = res1.value

6.效果

上面的方式可以实现,没有问题,应该还有别的方式也行。

本文链接地址:https://www.jiuchutong.com/zhishi/295977.html 转载请保留说明!

上一篇:React 路由v6 - 超全详解(react 路由参数)

下一篇:开关电源PCB排版基本规则(开关电源pcb布线规则)

  • 商务电池能用多久(商务电池)(商务电池和原装电池寿命比较)

    商务电池能用多久(商务电池)(商务电池和原装电池寿命比较)

  • 华为手机屏幕上时间和日期没有了怎么办(华为手机屏幕上的日期和时间没有了怎么办)

    华为手机屏幕上时间和日期没有了怎么办(华为手机屏幕上的日期和时间没有了怎么办)

  • 抖音可以看给谁送过礼物吗(抖音视频怎么去掉别人的抖音号)

    抖音可以看给谁送过礼物吗(抖音视频怎么去掉别人的抖音号)

  • 苹果相机的九宫格怎么设置(苹果相机的九宫格怎么设置出来)

    苹果相机的九宫格怎么设置(苹果相机的九宫格怎么设置出来)

  • 索尼a55配什么耳机(索尼a55配什么耳机使用)

    索尼a55配什么耳机(索尼a55配什么耳机使用)

  • k30后盖是玻璃还是塑料(k30后盖是玻璃的吗)

    k30后盖是玻璃还是塑料(k30后盖是玻璃的吗)

  • 微信删除聊天框就没有聊天记录了吗(微信删除聊天框后聊天记录还有吗)

    微信删除聊天框就没有聊天记录了吗(微信删除聊天框后聊天记录还有吗)

  • 2k 4k 显示器区别(2k和4k的区别)

    2k 4k 显示器区别(2k和4k的区别)

  • 苹果换外屏原彩还在吗(苹果换外屏原彩还能用吗)

    苹果换外屏原彩还在吗(苹果换外屏原彩还能用吗)

  • wifi代理是什么意思(wifi代理是干嘛的)

    wifi代理是什么意思(wifi代理是干嘛的)

  • oppo怎么召唤语音助手(OPPO怎么召唤语音)

    oppo怎么召唤语音助手(OPPO怎么召唤语音)

  • 华为荣耀play3什么时候上市(华为荣耀play3什么时候升级鸿蒙)

    华为荣耀play3什么时候上市(华为荣耀play3什么时候升级鸿蒙)

  • 拨叫的用户暂时无法接通是什么意思(拨叫的用户暂时无人接听是被拉黑了吗)

    拨叫的用户暂时无法接通是什么意思(拨叫的用户暂时无人接听是被拉黑了吗)

  • 华为手机的投屏功能在哪里(华为手机怎么设置投屏)

    华为手机的投屏功能在哪里(华为手机怎么设置投屏)

  • 屏蔽此人是什么意思(屏蔽此人是什么意思呀)

    屏蔽此人是什么意思(屏蔽此人是什么意思呀)

  • 打电话直接挂断是怎么回事(打电话直接挂断是拉黑了吗)

    打电话直接挂断是怎么回事(打电话直接挂断是拉黑了吗)

  • 显卡1050和1650区别(显卡1050与1650)

    显卡1050和1650区别(显卡1050与1650)

  • 华为微信声音小怎么调大声(oppo手机微信声音小怎么调大声)

    华为微信声音小怎么调大声(oppo手机微信声音小怎么调大声)

  • vivox27录屏怎么录音(vivox27录屏怎么关闭麦克风)

    vivox27录屏怎么录音(vivox27录屏怎么关闭麦克风)

  • 抖音音浪如何计算(抖音音浪如何计算收益)

    抖音音浪如何计算(抖音音浪如何计算收益)

  • b站app叫什么(b站的app是什么)

    b站app叫什么(b站的app是什么)

  • facetim怎么打开(faceit怎么用)

    facetim怎么打开(faceit怎么用)

  • 无线鼠标灯不亮(无线鼠标灯不亮是没电了吗)

    无线鼠标灯不亮(无线鼠标灯不亮是没电了吗)

  • 劳务报酬支出 怎么做账
  • 公司食堂辅助账怎么记账
  • 购车增值税可以抵扣多少
  • 公司对公账户给员工发工资税是谁扣
  • 公积金需要每月缴纳吗
  • 招待费和福利费每年标准
  • 认缴出资怎么填财务报表
  • 现金日记账支出是记借还是贷
  • 货样广告品管理办法
  • 营改增后不动产销售增值税 5%还是9%
  • 建筑行业预算
  • 增值税减免了,附加税申报表还用填吗
  • 出售废旧物资可以开专票吗
  • 污水处理服务费用交印花税吗
  • 补提以前年度税费应该计入
  • 小规模纳税人补开发票如何申报增值税
  • 电力发票没有到怎么做分录
  • 现金流量的具体识别标准
  • 企业利息收入如何做分录
  • 拆迁的支出费用包括哪些
  • 进项税发票未认证
  • 股东不发工资只给员工钱
  • 股东以无形资产投资,撤资时怎么算
  • win10正版免费下载
  • 台式电脑清洗步骤图解
  • 新公司成立前期费用
  • 万年青的养殖方法和注意事项盆栽
  • 在海里的章鱼
  • 来料加工企业需注意什么
  • php redis操作
  • 保姆级官方yolov7的训练自己的数据集以及项目部署
  • 党费返还怎么记账
  • 用于研发的材料做成产品出售后怎么做账
  • sql server版本号查看
  • jdbc连接mysql数据库代码
  • 厂区地面硬化施工方案
  • 劳务费应该怎么做会计分录
  • 建筑租赁公司是什么意思
  • 小规模纳税人申报纳税详细流程
  • 辞退补偿的账务处理
  • 营改增有什么好处
  • 现金存入银行的会计凭证
  • 预存返利骗局
  • 车费报销记入哪个账户
  • 机器折旧科目
  • 应付职工薪酬为负数什么意思
  • 计提附加税减半征收会计分录
  • 什么是累计预扣预缴应纳税所得额
  • 固定资产清理账户借方
  • 房地产企业前期围墙费用
  • 培训费用支出
  • 水利建设基金要预缴吗
  • 详解MySQL中ALTER命令的使用
  • win7显示无线网络未连接
  • 监控iphone软件
  • freebsd安装教程
  • freebsd软件安装
  • mac不同账户如何共享文件
  • inc是什么软件
  • 2021年win10累积更新
  • centos vi命令
  • linux常用命令查看
  • 解决在ios8中, cocos2dx 2.x版本里CCClippingNode没有效果的问题
  • 深入分析的成语
  • Extjs TriggerField在弹出窗口显示不出问题的解决方法
  • 谈谈jQuery Ajax用法详解
  • 原生javascript+css3编写的3D魔方动画旋扭特效
  • 使用express
  • python开发的程序
  • jquery导航菜单
  • js数组操作的常用方法有哪些
  • python的介绍
  • 怎样下载金税盘
  • 大数据在税务稽查的应用
  • 税务局网上缴税
  • 税控盘清卡的步骤
  • 孵化企业税收优惠
  • 中国移动的电子协议推送服务是什么
  • 河北社保网上申报时间
  • 河南国税网上办证流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设