javascript把本地sql数据库表转换为对象

在做项目的时候,需要读取本地数据库,并且在页面上显示出来,

原始数据

读取出来的原始数据如下:

var r=sqliteDB.exec(document.getElementById('txtSQL').value);
console.info(r);

 

 使用系统的转换方式

console.log('Here is a row: ' + JSON.stringify(r));

 

 可以看到其实数据就是拍平了的字符串

自定义转换对象

自己日常使用对象的形式比较习惯,整理就自己拼接对象,代码如下:

复制代码
    utilsLib={
        
        // 方法传入两个数组,第一个数组为key,第二个数组对应位置为value,此方法在Python中为zip()函数。
         ArraytoObj : (keys = [], values = []) => {
            if (keys.length === 0 || values.length === 0) return {};
            const len = keys.length > values.length ? values.length : keys.length;
            const obj = {};
            for (let i = 0; i < len; ++i) {
                obj[keys[i]] = values[i]
            }
            return obj;
        },

        // 转驼峰表示:func.camel('USER_ROLE',true) => UserRole
        // 转驼峰表示:func.camel('USER_ROLE',false) => userRole
         camel : (str, firstUpper = false) => {
            let ret = str.toLowerCase();
            ret = ret.replace(/_([\w+])/g, function (all, letter) {
                return letter.toUpperCase();
            });
            if (firstUpper) {
                ret = ret.replace(/\b(\w)(\w*)/g, function ($0, $1, $2) {
                    return $1.toUpperCase() + $2;
                });
            }
            return ret;
        },
        
        // 把数组里面的所有转化为驼峰命名
         camelArr : (arrs = []) => {
            let _arrs = [];
            arrs.map(function (item) {
                _arrs.push(utilsLib.camel(item));
            });
            return _arrs;
        },
        
        // 把数据库对象转换成实体对象(json格式的对象)
        // 1.把columns列名转化为驼峰;
        // 2.把columns和values进行组合成键值对;
         dbToObj : (_dbData = {}) => {
            let _res = [];
            _dbData.map(function (item) {
                let _columns = utilsLib.camelArr(item.columns);
                item.values.map(function (values) {
                    _res.push(utilsLib.ArraytoObj(_columns, values));
                });
            });
            return _res;
        }
    }
    
复制代码

 

// 解析转换数据
let obj = utilsLib.dbToObj(r);
console.info(obj);

结果如下:

 

 可以看到已经转换为json格式的对象了。

 

总结

来一个完整的代码吧

var r=sqliteDB.exec(document.getElementById('txtSQL').value);
console.info(r);
console.log('Here is a row: ' + JSON.stringify(r));
// 解析数据
let obj = utilsLib.dbToObj(r);
console.info(obj);

执行结果如下:

 

posted on   jack_Meng  阅读(182)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2022-04-07 记事本乱码,如何修复记事本中的中文乱码
2020-04-07 一键构造你的博客园目录,下载到本地
2020-04-07 我的博客目录
2020-04-07 Log4Net日志分类和自动维护
2020-04-07 使用U盘装系统 (新手篇)
2020-04-07 C#代码段,支持JavaScript的Region代码块
2020-04-07 C#把博客园编译成CHM文档阅读

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩