位置: IT常识 - 正文

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

发布时间:2024-01-15
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布线规则)

  • hdmi接口有什么用(hdmi接口转换器)

    hdmi接口有什么用(hdmi接口转换器)

  • 华为手机圆点怎么取消(华为手机圆点怎么设置取消不了)

    华为手机圆点怎么取消(华为手机圆点怎么设置取消不了)

  • 电源带不动显卡会烧坏显卡么(电源带不动显卡会黑屏吗)

    电源带不动显卡会烧坏显卡么(电源带不动显卡会黑屏吗)

  • qq显示4g和wifi准确吗(为什么qq用的4g却显示wifi在线)

    qq显示4g和wifi准确吗(为什么qq用的4g却显示wifi在线)

  • a1443是iPhone5s充电器(a1534充电器是多少瓦)

    a1443是iPhone5s充电器(a1534充电器是多少瓦)

  • 14寸电脑具体尺寸(14寸 电脑 尺寸)

    14寸电脑具体尺寸(14寸 电脑 尺寸)

  • 预览图是什么意思(预览图制作)

    预览图是什么意思(预览图制作)

  • opporeno4多大屏幕(oppo reno4手机参数)

    opporeno4多大屏幕(oppo reno4手机参数)

  • 笔记本8g和16g区别大吗(笔记本8G和16G区别)

    笔记本8g和16g区别大吗(笔记本8G和16G区别)

  • 辅助注册微信有风险吗(辅助注册微信有资金风险吗)

    辅助注册微信有风险吗(辅助注册微信有资金风险吗)

  • plc的扫描过程有几个阶段(plc的扫描过程包括)

    plc的扫描过程有几个阶段(plc的扫描过程包括)

  • 苹果11软件更新在哪(苹果11软件更新好,还是不更新好)

    苹果11软件更新在哪(苹果11软件更新好,还是不更新好)

  • iphone7耳机孔在哪里(iphone7耳机孔图片)

    iphone7耳机孔在哪里(iphone7耳机孔图片)

  • 唯品会怎么用云闪付付款(唯品会怎么用云闪付登录)

    唯品会怎么用云闪付付款(唯品会怎么用云闪付登录)

  • 怎么设为默认浏览器(怎么设为默认浏览器模式)

    怎么设为默认浏览器(怎么设为默认浏览器模式)

  • 快手搜昵称搜不到用户(快手搜索昵称搜不到)

    快手搜昵称搜不到用户(快手搜索昵称搜不到)

  • 毒买了鞋可以退款吗(毒买的鞋不能退)

    毒买了鞋可以退款吗(毒买的鞋不能退)

  • 快手上怎么跟主播连麦(快手怎么跟主播连麦开视频)

    快手上怎么跟主播连麦(快手怎么跟主播连麦开视频)

  • 90hz刷新率手机(90hz刷新率手机玩王者)

    90hz刷新率手机(90hz刷新率手机玩王者)

  • pr项目文件在哪里(pr的项目在哪)

    pr项目文件在哪里(pr的项目在哪)

  • pr缓存文件在哪里(pr缓存文件在c盘哪里)

    pr缓存文件在哪里(pr缓存文件在c盘哪里)

  • 链式存储和顺序存储区别(链式存储和顺序存储代码区别)

    链式存储和顺序存储区别(链式存储和顺序存储代码区别)

  • 内斯特角灯塔上空的银河 ,苏格兰斯凯岛 (© Shaiith/Getty Images)(内斯塔特点)

    内斯特角灯塔上空的银河 ,苏格兰斯凯岛 (© Shaiith/Getty Images)(内斯塔特点)

  • make命令   编译内核或源码文件(makefile 编译选项)

    make命令 编译内核或源码文件(makefile 编译选项)

  • mktemp命令  建立暂存文件(mkpart命令)

    mktemp命令 建立暂存文件(mkpart命令)

  • mysql索引规范的整理(mysql 索引类型以及使用场景)

    mysql索引规范的整理(mysql 索引类型以及使用场景)

  • 新公司需要去当地街道报备劳动关系证明吗
  • 企业清算所得税申报
  • 外购免税农产品进项税额如何抵扣
  • 进口原料免税
  • 收据盖发票专用章后果
  • 其他收益里的政府补助免税吗
  • 减免增值税计入其他收益
  • 当月已抵扣的专用发票能作废吗
  • 汇兑损益结转贷方怎么调整到借方
  • 销售自产设备税率
  • 损益表上的数据怎么看
  • 建设单位对施工单位的管理要求
  • 分公司注销存货处理
  • 全资子公司向母公司划转资产 土地增值税
  • 确定发出存货实际成本的方法
  • 公司和别人合伙违法吗
  • 计提坏账准备的前提条件
  • 电子产品发票税是多少
  • 企业为一般纳税人税率多少
  • 定额发票是啥
  • 行政事业单位会计基础工作规范
  • 控股合并吸收合并新设合并图示
  • 劳务发票备注怎么填
  • 小规模纳税人的税率是多少
  • 去年的企业所得税
  • 兼职人员的工资需要发票吗
  • win7无法使用管理员权限
  • 脚手架属于什么费用
  • 安卓系统详解
  • php连接mysql数据库详细步骤(图文)
  • js时间格式转换时间戳
  • 跨年收到退回增值税税款的账务处理
  • 如何取消库存商品订单
  • php错误和异常
  • phple
  • 女方结婚申请
  • php应用实例
  • 个体工商户季报还是月报
  • 印花税没交会怎么样
  • 企业的职工福利费应当按照应付工资总额的14%计提
  • 企业交的社保包含什么
  • Bootstrap table 控制表格高度固定(行高固定)并且不受数据量影响
  • dedecms使用教程
  • 个税显示申报成功是不是就可以了
  • 自由会计服务类工作者
  • vue+ele
  • 商业会计与财务会计的相同
  • 企业股权投资收益交增值税吗
  • 应交税费的明细账怎么登记
  • 医院购买医疗器械
  • 服装改制注意事项
  • 员工备用金会计分录
  • 通行费电子发票进项税额如何填报
  • 高温补贴纳税
  • 机票价格分类
  • 收到银行利息记什么会计科目
  • 税前扣除项目主要包括
  • 个人公积金计入什么科目
  • 房地产开发企业建造的商品房,在出售前
  • 基于存储过程的计算
  • 批量查询sql语句
  • mysql5.7.26启动失败
  • mysql数据库内存缓存设置
  • win7系统摄像头打不开
  • macfic
  • linux系统怎么安装
  • ffplay播放视频命令
  • docker untagged
  • efi怎么安装系统
  • 本地磁盘安装
  • linux邮件设置方法
  • oracle sql mysql
  • node.js中fs模块
  • python time模块日期运算
  • 严苛认证
  • jquery教程与例子
  • android的控件有哪些
  • python图片验证码输入错误不能点登陆
  • 夫妻双方房子契税怎么算
  • 土地增值税网上申报流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号