在 javascript / node js 中创建第二级的 JSON 键为小写

create JSON key of second level to lowercase in javascript / nodej s

我正在尝试将 json 键设为小写,所以我得到了一个解决方案,它将所有 json 键设为小写,但我不想将所有 json 设为小写key to lower case 我只想把第二层的json key改成小写

所以在做 console.log(data) 时我得到了这个输出

{
  'valueToBeAssign': {
    titleAsName: 'random title',
    urlOrWebsite: 'www.google.com',
    name: 'english',
    number: 123
  }
}

{
  'computerAssignTask': {
    taskName: 'debug every thing',
    issueGenerated: 'At low level',
    assigneName: 'Mick',
    reporterName: 'Pete',
    issueResolve: 'not yet'
  }
}

所以我写了一段代码

          let json = JSON.stringify(data);
          var newJson = json.replace(/"([\w]+)":/g, function ([=13=], ) {
            return '"' + .toLowerCase() + '":';
          });
          var newObj = JSON.parse(newJson);
          console.log(newObj);

但是我得到的所有密钥都是小写的

{
  'valuetobeassign': {
    titleasname: 'random title',
    urlorwebsite: 'www.google.com',
    name: 'english',
    number: 123
  }
}

{
  'computerassigntask': {
    taskname: 'debug every thing',
    issuegenerated: 'At low level',
    assignename: 'Mick',
    reportername: 'Pete',
    issueresolve: 'not yet'
  }
}

我真正想要的是第一个键不应该改变,但之后应该像这样改变

{
  'valueToBeAssign': {
    titleasname: 'random title',
    urloOrwebsite: 'www.google.com',
    name: 'english',
    number: 123
  }
}

{
  'computerAssignTask': {
    taskname: 'debug every thing',
    issuegenerated: 'At low level',
    assignename: 'Mick',
    reportername: 'Pete',
    issueresolve: 'not yet'
  }
}

我想要这种格式

遍历对象的所有键可能会更好。这样,您就可以按级别有区别地更改密钥。

const data = {
  'valueToBeAssign': {
    titleAsName: 'random title',
    urlOrWebsite: 'www.google.com',
    name: 'english',
    number: 123
  }
}

const newData = {}
for (const key of Object.keys(data)) {
  newData[key] = {}
  for (const innerKey of Object.keys(data[key])) {
    newData[key][innerKey.toLowerCase()] = data[key][innerKey]
  }
}

console.log(newData)