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插件实现图片延迟加载技术详细说明
Mar 12 Javascript
最短的IE判断代码
Mar 13 Javascript
关于hashchangebroker和statehashable的补充文档
Aug 08 Javascript
同时使用n个window onload加载实例介绍
Apr 25 Javascript
包含中国城市的javascript对象实例
Aug 03 Javascript
JavaScript+html5 canvas制作的百花齐放效果完整实例
Jan 26 Javascript
AngularJS ng-template寄宿方式用法分析
Nov 07 Javascript
jQuery插件zTree实现获取当前选中节点在同级节点中序号的方法
Mar 08 Javascript
基于JavaScript实现抽奖系统
Jan 16 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
Jun 28 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
js实现录音上传功能
Nov 22 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 开发环境配置(Zend Server安装)
2010/04/28 PHP
php函数指定默认值方法的小例子
2013/12/04 PHP
从零开始学YII2框架(二)通过 Composer 安装扩展插件
2014/08/20 PHP
Symfony2使用Doctrine进行数据库查询方法实例总结
2016/03/18 PHP
php array_slice 取出数组中的一段序列实例
2016/11/04 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
由JavaScript中call()方法引发的对面向对象继承机制call的思考
2011/09/12 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
2013/05/28 Javascript
怎么判断js脚本加载完成
2014/02/28 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
使用focus方法让光标默认停留在INPUT框
2014/07/29 Javascript
javascript实现Table间隔色以及选择高亮(和动态切换数据)的方法
2015/05/14 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
vue.js实现简单轮播图效果
2017/10/10 Javascript
Angular模版驱动表单的使用总结
2018/05/05 Javascript
vuejs router history 配置到iis的方法
2018/09/20 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
详解ES6数组方法find()、findIndex()的总结
2020/05/12 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
[03:03]DOTA2校园争霸赛 济南城市决赛欢乐发奖活动
2013/10/21 DOTA
跟老齐学Python之玩转字符串(2)更新篇
2014/09/28 Python
Python 解决中文写入Excel时抛异常的问题
2018/05/03 Python
docker-py 用Python调用Docker接口的方法
2019/08/30 Python
乐高官方旗舰店:LEGO积木玩具
2019/04/06 全球购物
如何写好自荐信
2014/04/07 职场文书
物业管理工作方案
2014/05/10 职场文书
合伙购房协议样本
2014/10/06 职场文书
2015年保送生自荐信
2015/03/24 职场文书
公司市场部岗位职责
2015/04/15 职场文书
利用Python判断整数是否是回文数的3种方法总结
2021/07/07 Python
工厂无线对讲系统解决方案
2022/02/18 无线电
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android