我正在使用看起来像这样的JSON对象:
entire
text
body
div
0
1
2
...
30
目前,我如何访问0-30内的内容是使用以下代码,一旦我到达div的内容,我只针对每个内容。理由是由于某种原因,数字不起作用,所以我不能做整个.text.body.div.0
entire.text.body.div.forEach(function(example) {
// do stuff here
});
我为什么这么问?现在,当我尝试访问同一个JSON对象的内容时,我正在尝试执行类似的操作时遇到问题。特别是,使用以下JSON,我试图获取属性的值,并执行与上面类似的操作,但它不起作用。
entire
text
body
div
0
p
0
1
attribute: value
1
2
...
30
代码我尝试使用..但是它再次起作用,我无法访问属性/值。
entire.text.body.div.forEach(function(example) {
// do stuff here
example.p.forEach(function(anotherExample) {
});
答案 0 :(得分:0)
使用[]
访问它们 - 例如:
var obj = {1:"a"};
console.log(obj[1]); // outputs "a"
来自MDN:
属性访问器通过使用点表示法或括号表示法提供对对象属性的访问。
object.property
或object["property"]
括号表示法的典型用法是访问数组或数组(如对象)的属性,或者使用名称为变量的对象属性。
使用代码的括号表示法的具体实际应用,考虑一个迭代对象属性的函数,对每个属性执行一些函数 -
var john = {
firstName: "John",
lastName: "Smith",
age: 33,
employer: {
name: "ABC Corp",
},
0:"numeral zero"
}
function print(obj) {
console.log(obj);
}
function walk(obj, fn) {
Object.keys(obj).forEach(function(prop) {
if (typeof obj[prop] === 'object') {
walk(obj[prop], fn);
} else {
fn(obj[prop]);
}
});
}
walk(john, print);
输出 -
jdphenix@jdphenix-desktop:~/Desktop$ nodejs test1.js
numeral zero
John
Smith
33
ABC Corp