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);
执行结果如下:
关注我】。(●'◡'●)
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/17296697.html
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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文档阅读