我正在使用firefox插件,它为我提供了这个变量:
[{errorMessage:"TypeError: a is null", sourceName:"http://pagead2.googlesyndication.com/pagead/js/graphics.js",
lineNumber:17, console:null}]
从firebug,我可以看到这个变量,它叫做“e”。
我可以输入e,并将其打印在上面。
如果我输入e.toString();我明白了,
[object Object]
如果我输入e.errorMessage,则未定义。
如果我输入JSON.parse(e),我会收到意外的字符错误。
如何从这个对象中获取信息?似乎我对它做了什么,它只返回[object Object]或undefined。
我尝试过JSON.parse,JSON.stringify,迭代它,没有任何东西可以提供实际的对象信息。
答案 0 :(得分:2)
这是一个包含对象的数组,试试这个:
e[0].errorMessage;
答案 1 :(得分:0)
对象结构表示为一对花括号 包含零个或多个名称/值对(或成员)。 名称是字符串。每个名称后面都有一个冒号,分隔名称 从价值。单个逗号将值与后续值分开 名称。对象中的名称应该是唯一的。
字符串以引号开头和结尾。
它定义了Object Literal,其中PropertyNameAndValue可以是StringLiteral或IdentifierLiteral。 IdentifierLiteral,没有引号。
不带引号的密钥名称是合法的,在Javascript中是允许的,但它们不是有效的JSON。
[
{
errorMessage: "TypeError: a is null",
sourceName: "http://pagead2.googlesyndication.com/pagead/js/graphics.js",
lineNumber: 17,
console: null
}
]
结果
Parse error on line 3:
...a is null", sourceName: "http://
----------------------^
Expecting 'STRING'
答案 2 :(得分:0)
这不是JSON。它是一个JavaScript数组。它无论如何都与JSON无关。
要访问JavaScript数组,只需使用普通的JavaScript代码,而不是JSON.parse
或类似的代码。
您可以使用JSON.stringify()
将此数组转换为 JSON,但这肯定不是您想要的。
e.toString()
打印[object Object]
的原因很简单,这就是.toString()
方法为对象或数组返回的内容。 .toString()
并不总能提供有用的结果。
将以下内容粘贴到Firebug或Chrome控制台中,然后查看其记录内容:
var e = [
{
errorMessage: "TypeError: a is null",
sourceName: "http://pagead2.googlesyndication.com/pagead/js/graphics.js",
lineNumber: 17,
console:null
}
];
console.log( e.length );
console.log( e[0] );
console.log( e[0].errorMessage );
console.log( e[0].sourceName );
console.log( e[0].lineNumber );