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']}
`);
}
}