JSON字段是未定义的(Javascript)

时间:2013-04-08 21:42:01

标签: javascript json

我从servlet获取JSON,并使用JSON.parse()将responseText转换为JSON对象。 Chrome开发者工具将JSON对象显示为拥有我想要的数据,但是当我实际尝试访问它时,我只是得到了一堆'undefined's。

我没有正确解释数据吗?

Chrome开发者工具的屏幕截图: Debug output of JSON Object

简而言之,我输出数据的代码:

        for (var i = 0, len = jsonObj.length; i < len; ++i) {
            // Setup the result...
            var resultRow = document.createElement("tr");
            resultsTable.appendChild(resultRow);            
            var result = jsonObj[i];

            // Name
            var coverCell = resultRow.insertCell(0);
            coverCell.innerHTML = result.name;
        }
截图中显示的jsonData作为jsonObj传递给输出函数。

2 个答案:

答案 0 :(得分:1)

您尝试访问的密钥似乎在前面有@个字符。由于@字符不是有效的标识符,因此您不能使用点表示法,因此可以使用括号表示法检索值:

coverCell.innerHTML = result['@name'];

答案 1 :(得分:0)

如果您从服务器获取json,那么为什么使用json.parse()?你应该直接将数据用作json。

JSON.parse()用于将字符串解析为JSON。我承诺来自服务器的响应已经是一个JSON,可以直接使用而无需进一步解析。

作为一种故障排除方法,您可以使用console.log打印对象。