如何浏览具有数字的JSON对象?

时间:2015-02-12 06:11:27

标签: javascript json parsing

我正在使用看起来像这样的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) {



});

1 个答案:

答案 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