【问题标题】:How do you log content of a JSON object in Node.js?如何在 Node.js 中记录 JSON 对象的内容?
【发布时间】:2011-11-17 16:46:46
【问题描述】:

是否可以打印对象内容,例如Node.js 中的方法和属性?

目前我正在尝试打印会话对象并获得以下信息:

console.log("Session:" + session);
> Session:[object Object]

可能类似于 PHP 中的 print_r(array),或者在 Java 中使用 .toString。

【问题讨论】:

标签: json node.js


【解决方案1】:

试试这个:

console.log("Session: %j", session);

如果可以将对象转换为 JSON,那就可以了。

【讨论】:

  • 我正在尝试为请求对象执行此操作,但它显示错误 TypeError: Converting circular structure to JSON Is there any way to limit the depth
  • 无论如何要漂亮地打印这个?
  • @chovy:这样的事情可能会起作用:console.log(JSON.stringify(json, null, 4));
  • 这对我有用:console.log("Session: %O", session);developer.mozilla.org/en-US/docs/Web/API/…
  • 为我的 json API 响应工作!谢谢
【解决方案2】:

为了得到更类似于原始console.log(obj) 的输出,我通常使用console.log('Status: ' + util.inspect(obj))(JSON 略有不同)。

【讨论】:

  • 这给出了“未定义实用程序”。您必须首先使用 `var util = require("util")。此外,子对象仍然显示为 [Object],而不是表示它们的 JSON 字符串。
  • 要移除深度限制,请使用:require('util').inspect(obj, {depth:null})
【解决方案3】:
function prettyJSON(obj) {
    console.log(JSON.stringify(obj, null, 2));
}

// obj -> value to convert to a JSON string
// null -> (do nothing)
// 2 -> 2 spaces per indent level

JSON.stringify on MDN

【讨论】:

  • 迄今为止最好的答案 +1!
【解决方案4】:

console.dir() 是最直接的方法。

【讨论】:

  • console.dir(someJsonObject);对我来说,仍然没有打印嵌套对象。
  • 我认为它不会通过原型钻入对象,也不会处理某些递归。如果 .dir() 还不够,您将不得不执行诸如 console.log(JSON.stringify()) 之类的操作或针对您的对象更具体的操作。如果您有关于该对象的更多信息,也许可以给出更具体的建议。
  • 它可以采用与 util.inspect 相同的选项。添加 {depth:null}
【解决方案5】:

这适用于任何对象:

    var util = require("util");
    console.log(util.inspect(myObject, {showHidden: false, depth: null}));

【讨论】:

  • 这对错误对象很有用。它们的属性都没有出现在其他解决方案中。
  • 这只是挂在我身上。我认为对象中的循环引用会使它崩溃
  • @Richard 由于深度选项设置为null,它可能会为您挂起(编辑)。 Inspect 具有对循环引用的内置处理。
【解决方案6】:
console.log(obj);

运行:node app.js > output.txt

【讨论】:

    【解决方案7】:

    这将用于在 nodejs 控制台中输出的大多数对象

    var util = require('util')
    function print (data){
      console.log(util.inspect(data,true,12,true))
      
    }
    
    print({name : "Your name" ,age : "Your age"})

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多