码迷,mamicode.com
首页 > 其他好文 > 详细

当后端返回的数据格式出问题时

时间:2021-06-10 18:29:00      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:ace   eof   ==   导致   EDA   parse   对象   class   str   

 

当后端返回的数据格式出问题时:

本来res.data应该是个对象,然后某次出现了字符串

JSON.parse转换还失败:

一看对象的某个键的值为NaN(其实是数据的问题),导致返回值不是合法的json格式;

然后就进行了粗鲁的处理:

 res=>{
            if(typeof res.data!==‘string‘){
              if(res.data.code===‘200‘){
                this.tableDataAll=res.data.result.concat()
                this.tableData=this.tableDataAll.slice(0,this.pageSize)
                this.total=this.tableDataAll.length
                this.loading=false
              }else{
                this.loading=false
                this.$message({
                  message:‘数据加载失败!‘,
                  type:‘error‘,
                  duration: 2000,
                });
              }
            }else {
              let origStr=res.data
              let replaceStr=origStr.replace(/NaN/g,"-")
              // console.log(‘转码‘,replaceStr)
              let trueDate =JSON.parse(replaceStr)
              // console.log(‘trueDate‘,trueDate)
              if(trueDate.code===‘200‘){
                // this.total=res.data.result[‘total_num‘]
                this.tableDataAll=trueDate.result.concat()
                this.tableData=this.tableDataAll.slice(0,this.pageSize)
                this.total=this.tableDataAll.length
                this.loading=false
              }else{
                this.loading=false
                this.$message({
                  message:‘数据加载失败!‘,
                  type:‘error‘,
                  duration: 2000,
                });
              }
            }

 精简一下:

       if(typeof res.data===‘string‘){
              let replaceStr=res.data.replace(/NaN/g,"-")
              // console.log(‘转码‘,replaceStr)
              res.data =JSON.parse(replaceStr)
            }
            if(res.data.code===‘200‘){
              this.tableDataAll=res.data.result.concat()
              this.tableData=this.tableDataAll.slice(0,this.pageSize)
              this.total=this.tableDataAll.length
              this.loading=false
            }else{
              this.loading=false
              this.$message({
                message:‘数据加载失败!‘,
                type:‘error‘,
                duration: 2000,
              });
            }

 

当后端返回的数据格式出问题时

标签:ace   eof   ==   导致   EDA   parse   对象   class   str   

原文地址:https://www.cnblogs.com/nuonuo-D/p/11424738.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!