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

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

我得到了多个[object 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);

其他回答

下面的代码将在警报框中显示完整的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));

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

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

使用字符串格式;

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字符串

尝试console.dir()而不是console.log()

console.dir(obj);

MDN说console.dir()支持:

FF8 + IE9 + 歌剧 铬 Safari

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

函数

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