json对象及数组键值的深度大小写转换问题详解


Posted in Javascript onMarch 30, 2018

前言

最近在做一个项目,发现后端返回的数据键值全部都是大写的,有时候前端用起来很不方便,所以写了一个深度转换的小工具,分享给大家,也就不用重复造轮子了,不喜勿喷,下面话不多说了,来一起看看详细的介绍吧。

start

npm i deep-lu-trans --save

json example

import t from 'deep-lu-trans';
const obj = {
 AS_DD_S: 123213,
 AND_SAJ_JDK_JSAKD_: {
 DJK_ASJ: {
  SA_DSA_DSA: 123123,
  ASDA_SDH_KAS: {
  ASD_SAD: [{
   ASD_SAD_SA: 123123,
   III_ASDA: [1, 23, {
   ASD_SAD: 123
   }]
  }]
  }
 }
 },
 KIO: [{
 OP: 1,
 OOP: 2
 }, {
 OL: 1,
 OP: 2
 }]
};

t.objKeysToLower(obj).then((res) => {
 console.log(JSON.stringify(res));

});
t.objKeysToLower(obj).then((res) => {
 console.log(JSON.stringify(res));
 /*
 {"as_dd_s":123213,"and_saj_jdk_jsakd_":{"djk_asj":{"sa_dsa_dsa":123123,"asda_sdh_kas":{"asd_sad":[{"asd_sad_sa":123123,"iii_asda":[1,23,{"asd_sad":123}]}]}}},"kio":[{"op":1,"oop":2},{"ol":1,"op":2}]}
 */
 t.objKeysToUpper(res).then((_s) => {
 console.log(JSON.stringify(_s));
 /*
 {"AS_DD_S":123213,"AND_SAJ_JDK_JSAKD_":{"DJK_ASJ":{"SA_DSA_DSA":123123,"ASDA_SDH_KAS":{"ASD_SAD":[{"ASD_SAD_SA":123123,"III_ASDA":[1,23,{"ASD_SAD":123}]}]}}},"KIO":[{"OP":1,"OOP":2},{"OL":1,"OP":2}]}
  */
 });
});

array example

import t from 'deep-lu-trans';

const arr = [{
 A_B: 1,
 B_C: 2
}, 3, 4, 'abc', [{
 A_B: 1,
 B_C: {
 C_D: [0, {
  CK: 1,
  KL: 2
 }]
 }
}]]

t.arrKeysToLower(arr).then((res) => {
 console.log(JSON.stringify(res));
 /*
 [{"a_b":1,"b_c":2},3,4,"abc",[{"a_b":1,"b_c":{"c_d":[0,{"ck":1,"kl":2}]}}]]
 */
 t.arrKeysToUpper(res).then((_s) => {
 console.log(JSON.stringify(_s));
 [{"A_B":1,"B_C":2},3,4,"abc",[{"A_B":1,"B_C":{"C_D":[0,{"CK":1,"KL":2}]}}]]
 });
})

git地址:https://github.com/burning0xb/deep-lu-trans

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
读jQuery之十 事件模块概述
Jun 27 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
Jul 31 Javascript
通过$(this)使用jQuery包装后的方法或属性
May 18 Javascript
jQuery切换所有复选框选中状态的方法
Jul 02 Javascript
Bootstrap项目实战之子栏目资讯内容
Apr 25 Javascript
jQuery EasyUi 验证功能实例解析
Jan 06 Javascript
layui前段框架日期控件使用方法详解
May 19 Javascript
vue中的计算属性实例详解
Sep 19 Javascript
vuex 解决报错this.$store.commit is not a function的方法
Dec 17 Javascript
JS字典Dictionary类定义与用法示例
Feb 01 Javascript
vue 判断页面是首次进入还是再次刷新的实例
Nov 05 Javascript
详解Js模块化的作用原理和方案
Apr 29 Javascript
Vue实现导出excel表格功能
Mar 30 #Javascript
理解 JavaScript EventEmitter
Mar 29 #Javascript
JavaScript EventEmitter 背后的秘密 完整版
Mar 29 #Javascript
vue的diff算法知识点总结
Mar 29 #Javascript
vue文件树组件使用详解
Mar 29 #Javascript
vue全局组件与局部组件使用方法详解
Mar 29 #Javascript
javascript实现文件拖拽事件
Mar 29 #Javascript
You might like
php之字符串变相相减的代码
2007/03/19 PHP
java EJB 加密与解密原理的一个例子
2008/01/11 PHP
PHP COOKIE设置为浏览器进程
2009/06/21 PHP
探讨fckeditor在Php中的配置详解
2013/06/08 PHP
PHP 使用MySQL管理Session的回调函数详解
2013/06/21 PHP
五款PHP代码重构工具推荐
2014/10/14 PHP
推荐5款跨平台的PHP编辑器
2014/12/25 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
node.js中的url.format方法使用说明
2014/12/10 Javascript
jquery实现键盘左右翻页特效
2015/04/30 Javascript
Vue.js基础知识汇总
2016/04/27 Javascript
漫谈JS引擎的运行机制 你应该知道什么
2016/06/15 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
JavaScript 中对象的深拷贝
2016/12/04 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
微信小程序实战篇之购物车的实现代码示例
2017/11/30 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
python单元测试unittest实例详解
2015/05/11 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
Python 3.6 读取并操作文件内容的实例
2018/04/23 Python
Django单元测试工具test client使用详解
2019/08/02 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
使用Python实现图像标记点的坐标输出功能
2019/08/14 Python
Django框架ORM数据库操作实例详解
2019/11/07 Python
HTML5 Canvas实现烟花绽放特效
2016/03/02 HTML / CSS
HTML5 新标签全部总汇(推荐)
2016/06/13 HTML / CSS
abstract class和interface有什么区别?
2012/01/03 面试题
法院实习人员自我鉴定
2013/09/26 职场文书
环境科学毕业生自荐信
2013/11/21 职场文书
报到证办理个人委托书
2014/10/06 职场文书
优秀少先队辅导员事迹材料
2014/12/24 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
2015年仓管员工作总结
2015/04/21 职场文书
交流会主持词
2015/07/02 职场文书