访问JSON数组值?

时间:2012-04-05 18:30:17

标签: php json parsing multidimensional-array data-access

eSo我有一些解析过的PHP数据,我从我的数据库中取出然后用json_encode()解析为JSON。然后我使用JSONparse()来制作我的数组的对象。我的代码如下所示:

$.get("fetchDatabase.php", function(data){
var parsedData = jQuery.parseJSON(data); }

我留下了数组parsedData,如下所示:

[

{"person0":{"name":["Erik Steen"],"age":["1"]}},
{"person1":{"name":["Frida Larsson"],"age":["1"]}},
{"person2":{"name":["Abdi Sabrie"],"age":["2"]}},
{"person3":{"name":["Achraf Malak"],"age":["3"]}},
{"person4":{"name":["Adam Anclair"],"age":["1"]}}

]

我已将这些数组放在名为

的数组中
var peopleArray= { people: [ parsedData ] };

到目前为止一切顺利。现在我想要的是能够访问某些人属性。喜欢名字或年龄。我如何定位这些属性?我试图在没有运气的情况下打印这些属性。我试过了:

alert (peopleArray.people[0].person1.name);

Whiched回归:

Uncaught TypeError: Cannot read property 'name' of undefined

如何访问这些属性?

1 个答案:

答案 0 :(得分:3)

除了拼写错误(“namn”)之外,问题是你在一个数组中放入一个数组:

var peopleArray = { people: [ parsedData ] };

由于parsedData是一个数组,所以你最终得到的是这样的结构:

// peopleArray
{ people :  [ [  { "person0" : ... }, ...  ] ]  }
//  oops -----^

看到问题?由于parsedData已经是一个数组,因此正确的代码是:

var peopleArray = { people: parsedData };