json对象以及数组键值的深度大小写转换问题
发布于 7 年前 作者 burning0xb 3116 次浏览 来自 分享

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

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

回到顶部