Javascript 如何访问密钥';json文件中对象中的s值

Javascript 如何访问密钥';json文件中对象中的s值,javascript,json,Javascript,Json,我想存储Amount它们的值,但我不知道如何访问它们。我试过了 { "001" : { "qwe" : { "num" : 52 } }, "002" : { "qwe1" : { "num" : 53 } }, "003&quo

我想存储
Amount
它们的值,但我不知道如何访问它们。我试过了

{
    "001" : {
      "qwe" : {
        "num" : 52
      }
    },
    "002" : {
        "qwe1" : {
          "num" : 53
        }
      },
      "003" : {
        "qwe2" : {
          "num" : 54
        },
        "qwe3" : {
          "num" : 35
        }
    }
}

但是它不起作用,有没有办法解决这个问题?谢谢

假设您已将JSON解析为一个对象,并将结果存储在
obj
中,要访问
obj
中每个对象中的
Amount
属性,您将需要嵌套循环(在您自己的代码中可以是明显的循环,也可以是
object.keys
中隐藏的循环)。例如(我在这里假设对象没有继承的可枚举属性,正常环境中的普通对象也是如此):

实例:

const obj={
“08CcB9rs4GS019YNrzWTEG0W5ch1”:{
“4vt4pqul4594ee66jkwelb”:{
“金额”:5,
“日期”:“2021年2月1日”,
}
},
“08Db3T1AtRf5lzrBdg2yIEEuzon1”:{
“3msj8caen59tlywi7xorz”:{
“金额”:5,
“日期”:“2021年1月26日”,
}
},
“FeJ4wKdUcNPTW4LetRMIu1bc7zy1”:{
“c5it14gi0w88ssldqqsaqe”:{
“金额”:5,
“日期”:“2021年1月21日”,
},
“kdei9yybz0eoiuvoepex2g”:{
“金额”:3,
“日期”:“2021年1月15日”,
}
}
};
for(Object.keys的常量外部名称(obj)){
常量中间=对象[外部名称];
for(对象的常量middleName.keys(中间)){
常量内部=中间[中间名];
常量金额=内部金额;
log(`obj[“${outerName}”][“${middleName}”].金额为${Amount}`);
}
}
Object.values()
将处理外部键,只留下内部对象。它们可以减少到内部键和数量

const对象={
“08CcB9rs4GS019YNrzWTEG0W5ch1”:{
“4vt4pqul4594ee66jkwelb”:{
“金额”:5,
“日期”:“2021年2月1日”,
}
},
“08Db3T1AtRf5lzrBdg2yIEEuzon1”:{
“3msj8caen59tlywi7xorz”:{
“金额”:5,
“日期”:“2021年1月26日”,
}
},
“FeJ4wKdUcNPTW4LetRMIu1bc7zy1”:{
“c5it14gi0w88ssldqqsaqe”:{
“金额”:5,
“日期”:“2021年1月21日”,
},
“kdei9yybz0eoiuvoepex2g”:{
“金额”:3,
“日期”:“2021年1月15日”,
}
}
}
让innerObjects=Object.Value(对象)
让结果=内部对象。减少((acc,el)=>{
常量键=对象键(el)
key.forEach(key=>acc[key]=el[key].Amount)
返回acc
}, {})

console.log(结果)
这适用于您的案例:

for (const outerName of Object.keys(obj)) {
    const middle = obj[outerName];
    for (const middleName of Object.keys(middle)) {
        const inner = middle[middleName];
        const amount = inner.Amount;
        console.log(`obj["${outerName}"]["${middleName}"].Amount is ${amount}`);
    }
}

有很多方法。这是一个:

Object.keys(obj).forEach((key) => {
  Object.keys(obj[key]).forEach((k) => {
    console.log(obj[key][k]["Amount"]);
  });
});

演示:

欢迎使用堆栈溢出!请拿着(你得到了一个徽章!),四处看看,仔细阅读,特别是我还推荐乔恩·斯基特的。恐怕不清楚您所说的“…存储所有键(
amount
)及其值…”是什么意思?第一层中的每个对象是否只有一个属性?(对于你所展示的,这是真的,但它总是真的吗?我们可以假设吗?)是的,它总是这样,我没有看到这个,或者没有“数量”属性吗?请在您的问题中添加完整且正确的JSON,或更新其文本以解释“amount”属性的来源。
Object.keys(obj).forEach((key) => {
  Object.keys(obj[key]).forEach((k) => {
    console.log(obj[key][k]["Amount"]);
  });
});
for (const property1 in object) {
  for (const property2 in object[property1]) {
    console.log(`${property2}: ${object[property1][property2]['Amount']}
    `);
  }
}