我有一个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,那么你可以使用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,那么你可以使用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)中则不然。
使用字符串格式;
console.log("%s %O", "My Object", obj);
Chrome有以下格式说明符;
%s将值格式化为字符串。 %d或%i将值格式化为 一个整数。 %f将值格式化为浮点值。 将值格式化为可展开的DOM元素(如 元素面板)。 %O将值格式化为可扩展的JavaScript 对象。 %c根据您的CSS样式格式化输出字符串 提供的。
Firefox也有字符串替换,有类似的选项。
输出到JavaScript对象的超链接。单击该链接将打开一个检查器。 %d或%i输出一个整数。尚不支持格式化。 %s输出一个字符串。 %f输出一个浮点值。尚不支持格式化。
Safari有printf样式的格式化程序
%d或%i整数 %[0。N]f精度为N位的浮点值 % o对象 % s字符串
下面的代码将在警报框中显示完整的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("object: %O", obj)
打印JSON解析对象只需输入console.log(JSON. log)。Stringify (data, null, " ")); 你会得到非常清晰的输出