Ski*_*zit 188 javascript printing parsing json
我有一个已经使用JSON解析的javascript对象JSON.parse我现在想打印对象,所以我可以调试它(函数出错了).当我做以下事情......
for (property in obj) {
output += property + ': ' + obj[property]+'; ';
}
console.log(output);
Run Code Online (Sandbox Code Playgroud)
我列出了多个[object Object].我想知道如何打印这个以查看内容?
cHa*_*Hao 538
你知道JSON代表什么吗? JavaScript对象表示法.它为对象提供了非常好的格式.
JSON.stringify(obj) 将返回一个对象的字符串表示.
RoT*_*oRa 117
大多数调试器控制台都支持直接显示对象.只是用
console.log(obj);
Run Code Online (Sandbox Code Playgroud)
根据您的调试器,这很可能会将控制台中的对象显示为折叠树.您可以打开树并检查对象.
Dis*_*dev 53
尝试console.dir()而不是console.log()
console.dir(obj);
Run Code Online (Sandbox Code Playgroud)
MDN表示console.dir()支持:
Luk*_*tor 42
如果你想要一个带缩进的漂亮的多行JSON,那么你可以使用JSON.stringify它的第三个参数:
JSON.stringify(value[, replacer[, space]])
例如:
var obj = {a:1,b:2,c:{d:3, e:4}};
JSON.stringify(obj, null, " ");
Run Code Online (Sandbox Code Playgroud)
要么
JSON.stringify(obj, null, 4);
Run Code Online (Sandbox Code Playgroud)
会给你以下结果:
"{
"a": 1,
"b": 2,
"c": {
"d": 3,
"e": 4
}
}"
Run Code Online (Sandbox Code Playgroud)
在浏览器console.log(obj)中做得更好,但在shell控制台(node.js)中却没有.
Dav*_*son 22
使用字符串格式;
console.log("%s %O", "My Object", obj);
Run Code Online (Sandbox Code Playgroud)
Chrome具有以下格式说明符 ;
%s 将值格式化为字符串. %d或%i将值格式化为整数.%f 将值格式化为浮点值.%o 将值格式化为可扩展DOM元素(如"元素"面板中所示). %O 将值格式化为可扩展的JavaScript对象. %c 根据您提供的CSS样式格式化输出字符串.Firefox也有String Substitions,它们有类似的选项.
%o输出指向JavaScript对象的超链接.单击该链接可打开检查器.%d或%i输出整数.格式化尚不支持.%s 输出一个字符串.%f输出浮点值.格式化尚不支持.Safari有printf样式格式化程序
%d或%i整数%[0.N]f 具有N位精度的浮点值%o 宾语%s 串