我有一个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方法到控制台对象,以便更容易打印字符串化日志:
在javascript中观察对象(非原语)有点像量子力学,你“测量”的可能不是真实的状态,它已经改变了。
控制台。Json =控制台。Json ||函数(参数){ arg (var = 0;Arg < arguments.length;+ +参数) console.log (JSON。Stringify(参数[arg], null, 4)) } //使用实例 控制台。Json ([1,'a', null, {a:1}], {a:[1,2]})
很多时候需要查看对象的字符串化版本,因为按原样打印(原始对象)将打印对象的“活动”版本,该版本会随着程序的进展而发生变化,并且不会反映对象在记录时间点的状态,例如:
var foo = {a:1, b:[1,2,3]}
// lets peek under the hood
console.log(foo)
// program keeps doing things which affect the observed object
foo.a = 2
foo.b = null
其他回答
简单的函数提醒对象或数组的内容。 用数组或字符串或对象调用此函数,它会提醒内容。
函数
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);
你知道JSON代表什么吗?JavaScript对象符号。它为对象提供了很好的格式。
stringify(obj)将返回对象的字符串表示形式。
如果你想调试,为什么不使用控制台调试
window.console.debug(jsonObject);
尝试console.dir()而不是console.log()
console.dir(obj);
MDN说console.dir()支持:
FF8 + IE9 + 歌剧 铬 Safari
只使用
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