我有一个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]。我想知道我要如何打印这个才能查看内容?
当前回答
只使用
console.info("CONSOLE LOG : ")
console.log(response);
console.info("CONSOLE DIR : ")
console.dir(response);
你会在chrome控制台得到这个:
CONSOLE LOG :
facebookSDK_JS.html:56 Object {name: "Diego Matos", id: "10155988777540434"}
facebookSDK_JS.html:57 CONSOLE DIR :
facebookSDK_JS.html:58 Objectid: "10155988777540434"name: "Diego Matos"__proto__: Object
其他回答
简单的函数提醒对象或数组的内容。 用数组或字符串或对象调用此函数,它会提醒内容。
函数
function print_r(printthis, returnoutput) {
var output = '';
if($.isArray(printthis) || typeof(printthis) == 'object') {
for(var i in printthis) {
output += i + ' : ' + print_r(printthis[i], true) + '\n';
}
}else {
output += printthis;
}
if(returnoutput && returnoutput == true) {
return output;
}else {
alert(output);
}
}
使用
var data = [1, 2, 3, 4];
print_r(data);
大多数调试器控制台支持直接显示对象。只使用
console.log(obj);
根据调试器的不同,这很可能会在控制台中以折叠树的形式显示对象。您可以打开树并检查对象。
只使用
console.info("CONSOLE LOG : ")
console.log(response);
console.info("CONSOLE DIR : ")
console.dir(response);
你会在chrome控制台得到这个:
CONSOLE LOG :
facebookSDK_JS.html:56 Object {name: "Diego Matos", id: "10155988777540434"}
facebookSDK_JS.html:57 CONSOLE DIR :
facebookSDK_JS.html:58 Objectid: "10155988777540434"name: "Diego Matos"__proto__: Object
如果你想调试,为什么不使用控制台调试
window.console.debug(jsonObject);
使用字符串格式;
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字符串