打印JSON解析对象?

时间:2011-02-08 12:48:37

标签: javascript json parsing printing

我有一个javascript对象已经使用JSON.parse进行了JSON解析我现在想要打印对象以便我可以调试它(函数出错了)。当我做以下事情时......

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

我列出了多个[object Object]。我想知道如何打印它才能查看内容?

10 个答案:

答案 0 :(得分:513)

你知道JSON代表什么吗? JavaScript Object Notation 。它为对象提供了非常好的格式。

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

答案 1 :(得分:112)

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

console.log(obj);

根据您的调试器,这很可能会将控制台中的对象显示为折叠树。您可以打开树并检查对象。

答案 2 :(得分:51)

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

console.dir(obj);

MDN表示console.dir()支持:

  • FF8 +
  • IE9 +
  • Safari浏览器

答案 3 :(得分:34)

打印JSON解析对象只需键入

console.log( JSON.stringify(data, null, " ") );

你会得到非常明确的输出

答案 4 :(得分:2)

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

功能

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

答案 5 :(得分:2)

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

答案 6 :(得分:1)

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

window.console.debug(jsonObject);

答案 7 :(得分:1)

好而简单:

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

答案 8 :(得分:0)

如果您正在服务器上使用js工作,那么进行更多的体操工作将会非常有帮助...这是我的ppos(服务器上的漂亮打印):

ppos = (object, space = 2) => JSON.stringify(object, null, space).split('\n').forEach(s => console.log(s));

在创建我在编写服务器代码时可以实际读取的内容方面做得很出色。

答案 9 :(得分:0)

我不知道它从未正式制作过,but I've added my own json methodconsole对象可以更轻松地打印带字符串的日志:

在javascript中观察对象(非原始对象)有点像量子力学。.“ measure” 可能不是真实状态,已经改变了。

console.json = console.json || function(argument){
    for(var arg=0; arg < arguments.length; ++arg)
        console.log(  JSON.stringify(arguments[arg], null, 4)  )
}

// use example
console.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