我有一个javascript对象,它已经被JSON解析使用JSON。我现在想打印对象,这样我就可以调试它(函数出了问题)。当我做以下事情时……
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
我得到了多个[object object]。我想知道我要如何打印这个才能查看内容?
我有一个javascript对象,它已经被JSON解析使用JSON。我现在想打印对象,这样我就可以调试它(函数出了问题)。当我做以下事情时……
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
我得到了多个[object object]。我想知道我要如何打印这个才能查看内容?
当前回答
下面的代码将在警报框中显示完整的json数据
var data= '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';
json = JSON.parse(data);
window.alert(JSON.stringify(json));
其他回答
大多数调试器控制台支持直接显示对象。只使用
console.log(obj);
根据调试器的不同,这很可能会在控制台中以折叠树的形式显示对象。您可以打开树并检查对象。
尝试console.dir()而不是console.log()
console.dir(obj);
MDN说console.dir()支持:
FF8 + IE9 + 歌剧 铬 Safari
你知道JSON代表什么吗?JavaScript对象符号。它为对象提供了很好的格式。
stringify(obj)将返回对象的字符串表示形式。
如果你想要一个漂亮的带缩进的多行JSON,那么你可以使用JSON。Stringify的第三个参数:
JSON。Stringify (value[, replace [, space]])
例如:
var obj = {a:1,b:2,c:{d:3, e:4}};
JSON.stringify(obj, null, " ");
or
JSON.stringify(obj, null, 4);
会给你以下结果:
"{
"a": 1,
"b": 2,
"c": {
"d": 3,
"e": 4
}
}"
在浏览器中,console.log(obj)做得更好,但在shell控制台(node.js)中则不然。
下面的代码将在警报框中显示完整的json数据
var data= '{"employees":[' +
'{"firstName":"John","lastName":"Doe" },' +
'{"firstName":"Anna","lastName":"Smith" },' +
'{"firstName":"Peter","lastName":"Jones" }]}';
json = JSON.parse(data);
window.alert(JSON.stringify(json));