JSON.parse(data)返回[undefine]

时间:2016-04-05 12:23:16

标签: javascript jquery json

data = {
  "users": [
    [{
      "value": "01",
      "text": "ABC XYZ"
    }],
    [{
      "value": "02",
      "text": "XYZ ABC"
    }]
  ]
}

var jsonData = JSON.parse(data);

for (var i = 0; i < jsonData.users.length; i++) {
  var userlist = jsonData.users[i];
  alert(userlist.text)
}

此输出:[undefine];

但我希望获得[ABC XYZ][XYZ ABC]。 那么如何从这个数组中获取文本或值?

3 个答案:

答案 0 :(得分:2)

data已经是JavaScript对象,因此不需要额外的JSON.parse

您收到undefined结果,因为用户是一个数组数组,而不是一个对象数组。

尝试像这样访问userlist

var userlist = data.users[0][i];

JSBin:https://jsbin.com/sifoyivayi/edit?html,js,output

答案 1 :(得分:1)

试试这样:

var data={"users":[[{"value":"01","text":"ABC XYZ"}],[{"value":"02","text":"XYZ ABC"}]]};
for (var i = 0; i < data.users.length; i++) {
var userlist = data.users[0][i];
alert(userlist.text);
}

答案 2 :(得分:1)

您的对象包含嵌套数组。尝试以下。

var data = { "users": [[{ "value": "01", "text": "ABC XYZ" }], [{ "value": "02", "text": "XYZ ABC" }]] };

for (var i = 0; i < data.users.length; i++) {
    var userlist = data.users[i][0];
    alert(userlist.text);
}