在JavaScript中访问数组中的数组

5

我收到了一个JSON回复,如下所示:

[{
  "order_id": "12",
  "customer": "user user",
  "status": "Pending",
  "date_added": "02\/09\/2012",
  "total": "$500.00",
  "action": [{
    "text": "View",
    "href": "http:\/\/localhost\/oc\/admin\/index.php?route=sale\/order\/info&token=92a80574e5fcbf3e2d021404cfaae1a4&order_id=12"
  }]
}]

请查看“action”键,其值再次是一个数组。我正在尝试使用以下代码获取“action”键的值,但它对我来说显示为未定义

function (data) {
  if (data) {
    for (var i = 0; i < data.length; i++) {
      $('div.dashboard-content table.list tbody tr:first').before(
        '<tr id="' + 
        data[i]['order_id'] + 
        '"><td class="right">' + 
        data[i]['order_id'] + 
        '</td><td class="left">' + 
        data[i]['customer'] + 
        '</td><td class="left">' + 
        data[i]['status'] + 
        '</td><td class="left">' + 
        data[i]['date_added'] + 
        '</td><td class="right">' + 
        data[i]['total'] + 
        '</td><td class="right"> [<a href="' + 
        data[i]['action']['href'] + '">' + 
        data[i]['action']['text'] + 
        '</a>]</td></tr>'
      );
    }
  }
}

有人能帮助我吗?谢谢。


你的问题非常不清楚。 - Pointy
我的天啊,这些字符串几乎只有我在代码中使用的字符串长度的十分之一。我明白为什么有些人认为我的代码“无法审查”。另外,你可以在JS字符串内部使用\来转义换行符,或者在+号处换行,这不会影响输出。 - Fabrício Matté
2个回答

6

就像你所说的那样,action是一个数组。因此,您不能使用data[i]['action']['href']来访问它。您必须使用下标来指示您想要的数组位置。例如,要访问第一个位置,您需要使用:

var href = data[i].action[0].href;
var text = data[i].action[0].text;

3

action 是一个包含一个名为 text 的属性的对象数组。请更改:

data[i]['action']['text']

to:

data[i]['action'][0]['text']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接