我有一个javascript对象,它已经被JSON解析使用JSON。我现在想打印对象,这样我就可以调试它(函数出了问题)。当我做以下事情时……

for (property in obj) {
    output += property + ': ' + obj[property]+'; ';
}
console.log(output);

我得到了多个[object object]。我想知道我要如何打印这个才能查看内容?


当前回答

你知道JSON代表什么吗?JavaScript对象符号。它为对象提供了很好的格式。

stringify(obj)将返回对象的字符串表示形式。

其他回答

大多数调试器控制台支持直接显示对象。只使用

console.log(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)中则不然。

很简单:

console.log("object: %O", obj)

如果你想调试,为什么不使用控制台调试

window.console.debug(jsonObject);

简单的函数提醒对象或数组的内容。 用数组或字符串或对象调用此函数,它会提醒内容。

函数

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);