前端和后端数据键名的适配转换器,采用JS原生

  • Post author:
  • Post category:其他


最近接到一个需求,前端和后端对接接口数据时,双方的字段名不同,但由于过往数据太多,无法逐个进行修改,就通过封装一个方法统一进行转换适配。

<button id="btn">发起请求</button>
    <div></div>
    <script src="../js/jquery.v.3.6.js"></script>
    <script>
        let obj = [{
            id: 1,
            name: "万达MAll",
            type: "商超",
            contactperson: "科比",
            phone: 111,
            address: "成都市1街",
            creatyperson: "LQ",
            leaderperson: "LJX",
            createtime: "2011-11-11",
        }]
        let data;//设置接收后端数据的全局变量
        btnClick()
        function btnClick() {
            $('#btn').click(() => {
                $.ajax({
                    method: 'post',
                    url: 'http://localhost:1234/getList',
                    data: '',
                    success: function (res) {
                        // console.log(res);
                        data = res
                        adaptation()
                    }
                })
            })
        }
        function adaptation() {//数据转换适配器
            console.log(data);
            let resKey = Object.keys(data[0])//获取后端数据的键名
            let objKey = Object.keys(obj[0])//获取前端的键名
            console.log(resKey);
            console.log(objKey);
            let newList = [];//声明新的数组承接新数据
            for (let i = 0; i < data.length; i++) {
                let itemData = data[i]//获取每一个单独的对象
                let newObj = {}//新对象承接属性名
                let j = 0
                for (let key in itemData) {
                    newObj[objKey[j]] = itemData[resKey[j]]
                    j++
                }
                newList.push(newObj)
            }
            console.log(newList);

            return newList
        }
    </script>

前端新手,各位大佬多多指点



版权声明:本文为m0_68492325原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。