Node.jsでJSONオブジェクトのコンテンツをどのように記録しますか?


170

Node.jsのメソッドや属性などのオブジェクトコンテンツを印刷することはできますか?

現時点では、セッションオブジェクトを印刷して以下を取得しようとしています。

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

PHPのprint_r(array)と同じように、またはJavaの.toStringを使用している可能性があります。


9
console.log("Session:" + util.inspect(session))
レイノス'15

1
オブジェクトのより直感的で視覚的な出力については、nodedumpをご覧ください。github.com
ragamufin

回答:


271

これを試してください:

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

オブジェクトをJSONに変換できれば、それは機能します。


9
リクエストオブジェクトに対してこれを実行しようとしていますが、エラーTypeError:循環構造をJSONに変換しています。深さを制限する方法はありますか
Neil

とにかくこれをきれいに印刷しますか?
揺れ動く2013

5
@chovy:次のようなものが機能する可能性があります:console.log(JSON.stringify(json、null、4));
Eric Brandel 2013

1
:これは私のために働いたconsole.log("Session: %O", session); developer.mozilla.org/en-US/docs/Web/API/...
JPルー

私のjson API応答のために働いた!ありがとう
rodrigorf


33

console.log(obj)私が通常使用するraw に類似した出力を得るにはconsole.log('Status: ' + util.inspect(obj))(JSONは少し異なります)。


4
これにより、「util is not defined」と表示されます。最初に `var util = require(" util ")する必要があります。また、サブオブジェクトは、それを表すJSON文字列ではなく、[オブジェクト]として表示されます。
juanpaco 2013年

13
深さの制限、使用を削除するには:require('util').inspect(obj, {depth:null})
のLaPO

25

これは任意のオブジェクトで機能します:

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

2
これはエラーオブジェクトに最適です。他のソリューションではそれらのプロパティは表示されません。
Chris

1
これはちょうど私のためにハングアップします。オブジェクトの循環参照がクラッシュすると思います
Richard

@Richardは、depthオプションがに設定されているため、おそらくハングしますnull。Inspectには循環参照の処理が組み込まれています。
グリット2017

6

console.dir()が最も直接的な方法です。


console.dir(someJsonObject); ネストされたオブジェクトはまだ印刷されません。
nyarasha 2015年

1
プロトタイプを介してオブジェクトにドリルダウンすることはなく、特定の再帰を処理しないと思います。.dir()では不十分な場合は、console.log(JSON.stringify())のようにするか、オブジェクトに固有の何かを行う必要があります。オブジェクトに関する詳細情報がある場合は、より具体的なアドバイスを行うことができます。
Rainabba 2015

util.inspectと同じオプションを取ることができます。{depth:null}を追加
nikc.org 2017


0

これは、ほとんどのオブジェクトでnodejsコンソールに出力するためのものです。

var util = require('util')
function print (data){
  console.log(util.inspect(data,true,12,true))
  
}

print({name : "Your name" ,age : "Your age"})

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.