Node.js में JSON ऑब्जेक्ट की सामग्री कैसे लॉग करते हैं?


170

क्या Node.js में किसी ऑब्जेक्ट सामग्री जैसे विधियों और विशेषताओं को प्रिंट करना संभव है?

फिलहाल मैं सत्र वस्तु को प्रिंट करने और निम्नलिखित प्राप्त करने की कोशिश कर रहा हूं:

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

शायद PHP में print_r (सरणी), या जावा में .toString के समान तरीके से।


9
console.log("Session:" + util.inspect(session))
रेयनोस

1
वस्तुओं के अधिक सहज और दृश्य आउटपुट के लिए nodedump पर एक नज़र डालें: github.com/ragamufin/nodedump
ragamufin

जवाबों:


271

इसको आजमाओ:

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

यदि ऑब्जेक्ट को JSON में परिवर्तित किया जा सकता है, तो यह काम करेगा।


9
मैं अनुरोध ऑब्जेक्ट के लिए ऐसा करने की कोशिश कर रहा हूं, लेकिन यह त्रुटि दिखाता है टाइपरोर: JSON के परिपत्र संरचना को बदलने से गहराई को सीमित करने का कोई तरीका है
नील

वैसे भी यह सुंदर प्रिंट करने के लिए?
chovy

5
@chovy: ऐसा कुछ काम कर सकता है: कंसोल.लॉग (JSON.stringify (json, null, 4));
एरिक ब्रैंडल सिप

1
इसने मेरे लिए काम किया: console.log("Session: %O", session); developer.mozilla.org/en-US/docs/Web/API/…
JP Lew

मेरे json एपीआई प्रतिक्रिया के लिए काम किया! धन्यवाद
rodrigorf


33

कच्चे के समान उत्पादन के लिए console.log(obj)मैं आमतौर पर उपयोग करता हूं console.log('Status: ' + util.inspect(obj))(JSON थोड़ा अलग है)।


4
यह "उपयोग परिभाषित नहीं है" देता है। आपको पहले 'var use = आवश्यकता ("उपयोग") करनी होगी। इसके अलावा, उप-ऑब्जेक्ट अभी भी बाहर निकलते हैं [ऑब्जेक्ट] के रूप में और न कि JSON स्ट्रिंग जो उनका प्रतिनिधित्व करता है।
जुआनपाको

13
गहराई सीमा को हटाने के लिए, उपयोग करें:require('util').inspect(obj, {depth:null})
लैपो

25

यह किसी भी वस्तु के साथ काम करेगा:

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

2
यह त्रुटि वस्तुओं के लिए महान काम करता है। उनका कोई भी गुण अन्य समाधानों में दिखाई नहीं देता है।
क्रिस

1
यह सिर्फ मेरे लिए लटका हुआ है। मुझे लगता है कि एक वस्तु में परिपत्र संदर्भ इसे दुर्घटनाग्रस्त कर देता है
रिचर्ड

@ रीचर्ड शायद यह आपके लिए (एड) हैंग होने के कारण गहराई विकल्प के लिए सेट किया गया है null। निरीक्षण में परिपत्र संदर्भ के लिए अंतर्निहित उपचार है।
2grit

6

Comfort.dir () सबसे सीधा तरीका है।


console.dir (someJsonObject); अभी भी मेरे लिए, नीडिंत वस्तुओं को छोड़ दिया है।
निरशा

1
मुझे लगता है कि यह उनके प्रोटोटाइप के माध्यम से वस्तुओं में ड्रिल नहीं करेगा और यह कुछ पुनरावृत्ति से नहीं निपटेगा। आप या तो कुछ करने जा रहे हैं जैसे कंसोल .log (JSON.stringify ()) या आपकी वस्तु के लिए कुछ अधिक विशिष्ट यदि .dir () पर्याप्त नहीं है। यदि आपके पास ऑब्जेक्ट के बारे में अधिक जानकारी है, तो शायद अधिक विशिष्ट सलाह दी जा सकती है।
रेनबाबा

यह use.inspect के समान विकल्प ले सकता है। {गहराई: null}
nikc.org


0

यह अधिकांश वस्तुओं के लिए नोड्ज कंसोल में आउटपुट के लिए होगा

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

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.