2011-09-15 22 views
134

Nesne içeriği yazdırmak mümkün mü? Node.js içinde yöntemler ve öznitelikleri? PHP'de (dizi) print_r için Belki benzer bir şekildeNode.js'de bir JSON nesnesinin içeriğini nasıl kaydedersiniz?

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

veya Java .ToString kullanarak: Şu anda

aşağıdaki oturum nesnesi yazdırmak ve almaya çalışıyorum.

nesne JSON dönüştürülebilir olsaydı
console.log("Session: %j", session); 

, çalışacaklardır:

+8

'console.log ("oturum:" + util.inspect (oturum)) 'nesnelerin daha sezgisel ve görsel çıkışı için – Raynos

+1

nodedump bakabilirsiniz : https://github.com/ragamufin/nodedump – ragamufin

+0

Teşekkür ederim Raynos! :) –

cevap

226

bu bir deneyin.

+2

Teşekkürler, bu hile yapıldı. – Jack

+7

İstek nesnesi için bunu yapmaya çalışıyorum ama hata gösteriyor TürError: JSON 'a döngüsel yapıyı dönüştürme – SoulMan

+0

derinliğini bu kadar güzel bir şekilde yazdırmak için herhangi bir yol var mı? – chovy

31

console.log(obj) numaralı ham ürüne benzer bir çıktıya sahip olmak için genellikle console.log('Status: ' + util.inspect(obj)) kullanıyorum (JSON biraz farklı).

+2

Bu, "kullanım tanımlanmamış" verir. Önce var kullanmanız gerekir = required ("util"). Ayrıca, alt nesneler, onları temsil eden JSON dizesini değil, [Object] olarak çıkarlar. – juanpaco

+11

Derinlik sınırını kaldırmak için şu komutu kullanın: 'require (' util '): inspect (obj, {depth: null}) ' – lapo

+0

Sağda. Bu güncelleme için teşekkürler. – juanpaco

91
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

Bu benim için harika çalışıyor – krodmannix

+0

Bu çok pratik bir çözümdür –

6

console.dir() en doğrudan yoludur.

+0

console.dir (someJsonObject); benim için hala yuvalanmış nesneler yazdırılmamış bırakır. – nyarasha

+1

Bence prototipleri ile nesnelerin içine girmeyecek ve belirli bir özensizlikle uğraşmayacak. .dir() yeterli değilse, ya konsol.log (JSON.stringify()) gibi bir şey ya da nesnenize daha spesifik bir şey yapmak zorunda kalacaksınız. Nesne hakkında daha fazla bilgiye sahipseniz, belki daha spesifik tavsiyeler verilebilir. – rainabba

+0

util.inspect ile aynı seçenekleri alabilir. {Derinlik: null} ekle –

17

Bu, herhangi bir nesne ile çalışır:

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

Bu, hata nesneleri için harika çalışır. Özelliklerinin hiçbiri diğer çözümlerde görünmez. – Chris

+1

Bu sadece benim için askıda kalıyor. Bir nesnedeki döngüsel referanslar, – Richard

+0

@Richard'ı çökertir, bu nedenle 'null' olarak ayarlanmış derinlik seçeneği nedeniyle sizin için askıda kalır (ed). Inspect'in dairesel referanslar için yerleşik bir tedavisi vardır. – cvsguimaraes

İlgili konular