如何从JS中的JSON访问数组中的对象?

时间:2018-04-04 15:08:20

标签: javascript jquery json

我正在尝试遍历我通过AJAX从PHP传递给我的JS脚本的一些数据。

数据是:

history: [
["1h", {
    "number": "8651",
    "event": "lock"
}],
["2h", {
    "number": "16456",
    "event": "edit"
}],
["2h", {
    "number": "90",
    "event": "edit"
}],
]

我使用Jquery解析了JSON:

var responseData = $.parseJSON(data);
history = JSON.parse(responseData.history);

但是我在尝试访问此数据时所做的每一次尝试都抛出了错误,或者返回了有关该对象的元信息。

$.each(history, function (index, value) {
    console.log(value);
});

返回:

function go()

function back()

function forward()

function pushState()

function replaceState()

11

auto

null

如何访问数据?

解析两次的原因是

console.log(typeof responseData.history); // 'string'

尝试:

$.each(responseData.history, function (index, value) {

根据gurvinder372的回答给出错误:

TypeError: cannot use 'in' operator to search for '(b - 1)' in '[["1h",{"number"...'

1 个答案:

答案 0 :(得分:3)

您无法通过分配修改window.history,因此您正在迭代window.history对象,迭代responseData.history

$.each(responseData.history, function (index, value) {

另外,根据您的代码

var responseData = $.parseJSON(data);

responseData被解析为一个对象。