前后端数据格式对应关系
前端返回看到的数据大体有以下两种形式:
- 返回的是个Map
![](https://i-blog.csdnimg.cn/blog_migrate/170959f91a49f906d032bc621182e658.png#pic_center)
能看到返回的整体是个对象的形式,对象中包含一个个属性,一个属性名对应一个属性值。该形式对应后台返回的是个map集合,key和value与前台的属性名属性值相对应。
除了单个数据,可以看到还有例如companys的数组形式,数组中又包含一个个对象,可以叫做数组对象形式。
该companys对应后台的形式:companys是map的key值,value用List来存,list中每个序号位上的数据又对应前端一个对象,该对象当中又包含很多个key:value形式,也就是后端list每一位又存了一个map。总的来说对于companys在后端的形式是:Map<companys,List
-
前台接收
如果要获取但一个属性名,属性值。直接data.activitiSync即可
如果是接收companys格式的数据,用forEach循环遍历
let test = {}; data.companys.forEach((item) => { this.id = item.id; //即可拿到数组对象内的数据 //也可直接全盘接收 this.test = item; })
-
返回的是个List
该返回类型常用于查出多行数据。前端-后台-数据库数据形式对比如下:
前端整体是一个数组的形式,里面包含一个个对象,对象内有包含一个个属性,其对应后台返回类型为List
由上面第二张图可知,查询出来的一行数据,字段名对应列值依次存进一个Map中,即Map<<字段名1,列值1>,<字段名2,列值2>,……>,
Map装完一整行的数据,整体存进List一个序列位中,即List[i]
-
前台接收
返回的整体直接是数组的形式,则可以直接遍历。
如果数据需要通过code与前台对应上,则可在外面套一层循环
var codeList = ['370503103','370503100','370503001','370503400','370503002']; for(let i = 0;i < codeList.length; i++){ data.forEach((item) => { if(codeList[i] == ){ this.yb = item.YB //即可拿到数组对象内的数据 //也可直接全盘接收 this.test = item; } }) }
如果返回的对象属性名众多,而且你想依次拿出来处理,如下图所示
Object.keys(data).forEach((key) => { console.log("key",key); //其余可拿这个key操作 })
-