Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 处理JSON上更改键名的最佳方法是什么?_Javascript_Json - Fatal编程技术网

Javascript 处理JSON上更改键名的最佳方法是什么?

Javascript 处理JSON上更改键名的最佳方法是什么?,javascript,json,Javascript,Json,我想知道是否有一种方法可以转换这个JSON,而不是将“2020-07-06”作为一个键,我们将有一个字段日期:“2020-07-06”。这是一个大数据集,所以我无法手动更改所有内容 { "2020-07-06": { "food": { }, }, "2020-07-07": { "food": { }, }, "2020-07-08":

我想知道是否有一种方法可以转换这个JSON,而不是将“2020-07-06”作为一个键,我们将有一个字段日期:“2020-07-06”。这是一个大数据集,所以我无法手动更改所有内容

{
  "2020-07-06": {
    "food": {
    },
  },
  "2020-07-07": {
    "food": {
      },
    },
  "2020-07-08": {
    "food": {
      },
    },
  }

Expected output:

{
  "date": "2020-07-06",
  "food": {
   },
  "date": "2020-07-07",
  "food": {
   },
  "date: "2020-07-08",
  "food": {
   },
}
    

看看这个片段。我想这是一个开始

const old={
"2020-07-06": {
“食物”:{
},
},
"2020-07-07": {
“食物”:{
},
},
"2020-07-08": {
“食物”:{
},
},
}
const obj=Object.keys(旧).map(e=>{
设res=old[e]
res.date=e;
返回res;
});

控制台日志(obj)键必须是唯一的,因此唯一干净的解决方法是使用数组。这里有一个解决方案示例:

const输入={
"2020-07-06": {
“食物”:{
},
},
"2020-07-07": {
“食物”:{
},
},
"2020-07-08": {
“食物”:{
},
},
}
const res=Object.keys(输入).map((键)=>{
返回{
食物:输入[key]。食物,
日期:钥匙
}
});
console.log(res)
您可以使用并映射到它来创建一个数组

const old={
"2020-07-06": {
“食物”:{
},
},
"2020-07-07": {
“食物”:{
},
},
"2020-07-08": {
“食物”:{
},
},
}
const newArray=Object.entries(old.map)([key,valueObject])=>{
返回{date:key,…valueObject}
})

console.log(newArray)
此输入的预期输出是什么?JSON是用于数据交换的文本表示法。如果您处理的是JavaScript源代码,而不是字符串,那么就不是JSON。因此,如果您正在处理一个字符串,最好是对其进行解析,使其不再是JSON,然后修改生成的对象。但我怀疑您根本不是从JSON字符串开始的……欢迎来到Stack Overflow!请通读一遍,尤其是你在这里的最佳选择是做你的研究,对于相关的话题等等,并尝试一下。如果你在做了更多的研究和搜索后陷入困境,无法摆脱困境,请发布一份你的尝试,并明确指出你陷入困境的地方。人们会很乐意提供帮助。@T.J.Crowder OP不知道如何处理动态键,而事先不知道它们。通过对象循环,然后可以创建任何格式的对象want@T.J.Crowder我已经重新打开了。你可以投票结束,好的。请注意,这可以通过复制和粘贴轻松完成。请随意接受答案。实际上,我刚刚意识到我需要每个日期的日期字段,我添加了我的预期输出。这不是有效的JSON@stackoverlord。请注意,每个键都可能只存在一次。啊,你是对的,我认为TJ是对的,我想要一个对象数组。