javascript - 如何在 javascript 中将所有 JSON 键转换为小写?

标签 javascript jquery angularjs json

<分区>

实际上,我的要求是将整个 JSON(仅键)转换为小写。我试过它只转换该 JSON 的第一个键,而不是转换整个键。请查看 fiddle 链接或请提供任何其他方法来执行此操作。

谢谢...

var obj = {
  "Collections": {
    "conTainer": {
      "rowSet": [{
        "containerIsArchived": "Null",
        "containerOrderNo": "26",
        "versionNum": "0",
        "containerGlobalUniqueId": "Null",
        "containerIsTenantBased": "true",
        "containerCreatedBy": "user",
        "containerIsDeleted": "false",
        "containerTenantId": "292FEC76-5F1C-486F-85A5-09D88096F098",
        "containerLayoutId": "4e13dfcd-cd3b-4a29-81bd-0f73cf9577cf",
        "containerApplicationId": "0000000-0000-0000-0000-000000000000",
        "containerIsActive": "Null",
        "containerHeaderText": "apitest19feb16",
        "containerId": "3745b273-c48d-4c94-b576-3d7aac2f7ac6",
        "containerCreatedUTCDate": "2016-02-19 17:57:51.0"
      }]
    }
  }
};

convertKeysToCamelCase(obj);

function convertKeysToCamelCase(obj) {
  if (!obj || typeof obj !== "object") return null;

  if (obj instanceof Array) {
    return $.map(obj, function(value) {
      return convertKeysToCamelCase(value);
    });
  }

  var newObj = {};
  $.each(obj, function(key, value) {
    key = key.charAt(0).toLowerCase() + key.slice(1);
    newObj[key] = value;
  });
  console.log(newObj);
  return newObj;
};

这里是 Fiddle 链接:fiddle

最佳答案

试试下面的代码

function ConvertKeysToLowerCase(obj) {
    var output = {};
    for (i in obj) {
        if (Object.prototype.toString.apply(obj[i]) === '[object Object]') {
           output[i.toLowerCase()] = ConvertKeysToLowerCase(obj[i]);
        }else if(Object.prototype.toString.apply(obj[i]) === '[object Array]'){
            output[i.toLowerCase()]=[];
             output[i.toLowerCase()].push(ConvertKeysToLowerCase(obj[i][0]));
        } else {
            output[i.toLowerCase()] = obj[i];
        }
    }
    return output;
};

JsFiddle

关于javascript - 如何在 javascript 中将所有 JSON 键转换为小写?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36280538/

相关文章:

javascript - 逗号 Angularjs 后带有新行的文本区域

javascript - HTML多个ul>li使用jquery来回遍历

javascript - 下拉菜单总是返回 0

javascript - 仅显示动态添加的选定元素值

javascript - 为什么 AngularJS 教程的第 3 步不起作用?

Javascript 通过从对象解析数据来解决数组问题

javascript - 人名的 JS 正则表达式

Firefox 3.6 中的 JavaScript 错误

javascript - Uncaught Error : [$injector:modulerr] Failed to instantiate module myApp due to: Error: [$injector:modulerr]

javascript - 咕噜声 : Location URL app with period