在纯Javascript中读取复杂的JSON

时间:2013-10-06 10:09:58

标签: javascript json

我有以下json对象,我想阅读它(从中访问一些数据)

我怎么能用Javascript来做?

var allSites = 
  {"oldSites":
        [ 
            {
                "site0" : "http://site0.com/", 
                "site1" : "http://site1.com/",
                "site2" : "http://site2.com/" 
            }
        ],
    "newSites":
        [
            {
                "site0" : "http://site0/new", 
                "site1" : "http://site1/new", 
                "site2" : "http://site2/new"
            }
        ]
  };

这就是我所做的,但我没有定义。

var allSites = eval(allSites);
alert(allSites.oldSites.site0);

感谢。

3 个答案:

答案 0 :(得分:3)

如果您的对象定义与您所描述的一样,那么它不是JSON,您不需要使用eval

然后,由于oldSites是一个数组,您必须将其编入索引,例如oldSites[0]以获取第一个值。

然后,获取检索对象的site0密钥。

所以你应该使用: allSites.oldSites[0].site0

答案 1 :(得分:2)

使用

allSites.oldSites[0].site0

allSites.oldSites是一个数组。所以你必须使用索引

进行迭代

答案 2 :(得分:1)

请删除使oldSites成为数组的方括号

var allSites = 
  {"oldSites":

            {
                "site0" : "http://site0.com/", 
                "site1" : "http://site1.com/",
                "site2" : "http://site2.com/" 
            }
        ,
    "newSites":

            {
                "site0" : "http://site0/new", 
                "site1" : "http://site1/new", 
                "site2" : "http://site2/new"
            }

  };