在做项目的时候,需要读取本地数据库,并且在页面上显示出来,
原始数据
读取出来的原始数据如下:
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);
执行结果如下:
标签:return,数据库,javascript,ret,console,values,obj,sql,let From: https://www.cnblogs.com/mq0036/p/17296697.html