在javascript中重命名json数组中的未知密钥

在javascript中重命名json数组中的未知密钥,javascript,json,Javascript,Json,我一直在搜索,但没有成功,我想迭代一个json对象,但在我的代码下面的键上有不同的名称 [{ "05115156165165" :{ “姓名”:“约翰”, “电话”:“515555” }, "111111111":{ “姓名”:“约翰”, “电话”:“515555” } }] 因此,基本上我需要以下方式: [{ “数据”:{ “姓名”:“约翰”, “电话”:“515555” }, “数据”:{ “姓名”:“约翰”, “电话”:“515555” } }] 您可以使用来检索未知键的值,并使用red

我一直在搜索,但没有成功,我想迭代一个json对象,但在我的代码下面的键上有不同的名称

[{
"05115156165165" :{
“姓名”:“约翰”,
“电话”:“515555”
},
"111111111":{
“姓名”:“约翰”,
“电话”:“515555”
}
}]
因此,基本上我需要以下方式:

[{
“数据”:{
“姓名”:“约翰”,
“电话”:“515555”
},
“数据”:{
“姓名”:“约翰”,
“电话”:“515555”
}
}]
您可以使用来检索未知键的值,并使用
reduce
来转换
输入
数组:

让输入=[{
"05115156165165" :{
“姓名”:“约翰”,
“电话”:“515555”
},
"111111111":{
“姓名”:“约翰”,
“电话”:“515557”
}
}];
让结果=输入。减少((acc,cur)=>{
Object.values(cur.forEach)(
obj=>{acc.push({data:obj});}
)
返回acc;
},[]);
控制台日志(结果)
您可以使用来检索未知键的值,并使用
reduce
转换
输入
数组:

让输入=[{
"05115156165165" :{
“姓名”:“约翰”,
“电话”:“515555”
},
"111111111":{
“姓名”:“约翰”,
“电话”:“515557”
}
}];
让结果=输入。减少((acc,cur)=>{
Object.values(cur.forEach)(
obj=>{acc.push({data:obj});}
)
返回acc;
},[]);

控制台日志(结果)
键是使用
Object.entries
迭代对象中的所有键,在本例中,每个对象中只有1个未知的名称

const数据=[{
"05115156165165": {
“名称”:“John1”,
“电话”:“1111111”
},
"111111111": {
“名称”:“John2”,
“电话”:“2222222”
}
}]
让结果=[]
data.forEach(d=>{
for(对象项(d)的常量[键,值]){
结果:推({
数据:{
name:value.name,
电话:价值。电话
}
})
}
})

console.log(result)
键是使用
Object.entries
遍历对象中的所有键,在本例中,每个对象中只有1个未知的名称

const数据=[{
"05115156165165": {
“名称”:“John1”,
“电话”:“1111111”
},
"111111111": {
“名称”:“John2”,
“电话”:“2222222”
}
}]
让结果=[]
data.forEach(d=>{
for(对象项(d)的常量[键,值]){
结果:推({
数据:{
name:value.name,
电话:价值。电话
}
})
}
})

console.log(结果)
您可以执行以下操作:

let data = [{
  "05115156165165": {
    "name": "John1",
    "Phone": "1111111"
  },
  "111111111": {
    "name": "John2",
    "Phone": "2222222"
  }
}]
let result = []
data.forEach(d => {
  Object.keys(d).forEach(el => {
    result.push({
      data: d[el]
    })
  })
})
console.log(result)

您可以这样做:

let data = [{
  "05115156165165": {
    "name": "John1",
    "Phone": "1111111"
  },
  "111111111": {
    "name": "John2",
    "Phone": "2222222"
  }
}]
let result = []
data.forEach(d => {
  Object.keys(d).forEach(el => {
    result.push({
      data: d[el]
    })
  })
})
console.log(result)

看起来您将所有对象包装在一个对象中,afaik-不能有相同的键(
“data”
)。刚才注意到,每个子对象都需要有不同的键,否则最后一个将覆盖旧的。@fedesc,
{a:1,a:2,a:3}=={a:3}
=
2
3
“消失”。如果仔细观察,您会发现预期的是一个对象……它既不是“json数组”,也不是“json对象”()。这是一个带1的数组object@iAmOren我又检查了一遍,这就是为什么我删除了我的评论哈哈没有注意到额外的
{}
看起来像是你把所有的对象都包装在一个对象中,afaik-不能有相同的键(
“data”
)。刚刚注意到,每个子对象需要有不同的键,否则最后一个将覆盖旧的。@fedesc,
{a:1,a:2,a:3}=={a:3}
=第二个和第三个“消失”。如果仔细观察,您会发现预期的是一个对象……它既不是“json数组”,也不是“json对象”()。这是一个带1的数组object@iAmOren我又检查了一遍这就是为什么我删除了我的评论哈哈没有注意到额外的
{}