एक JSON ऑब्जेक्ट को बफर और बफर से JSON ऑब्जेक्ट में कनवर्ट करें


101

मेरे पास एक JSON ऑब्जेक्ट है और मैं इसे एक में परिवर्तित कर रहा हूं Bufferऔर यहां कुछ प्रक्रिया कर रहा हूं । बाद में मैं एक ही बफर डेटा को वैध JSON ऑब्जेक्ट में परिवर्तित करना चाहता हूं।

मैं Node V6.9.1 पर काम कर रहा हूँ

नीचे कोड है जो मैंने कोशिश की थी, लेकिन [object object]जब मैं वापस JSON में परिवर्तित करता हूं और मैं इस ऑब्जेक्ट को नहीं खोल सकता हूं।

var obj = {
   key:'value',
   key:'value',
   key:'value',
   key:'value',
   key:'value'
}

var buf = new Buffer.from(obj.toString());

console.log('Real Buffer ' + buf);  //This prints --> Real Buffer <Buffer 5b 6f 62 6a 65 63 74>

var temp = buf.toString();

console.log('Buffer to String ' + buf);  //This prints --> Buffer to String [object Object]

इसलिए मैंने पूरी तरह से निरीक्षण तरीके का उपयोग करके प्रिंट करने की कोशिश की

console.log('Full temp ' + require('util').inspect(buf, { depth: null }));  //This prints --> '[object object]' [not printing the obj like declared above]

अगर मैं इसे एक सरणी की तरह पढ़ने की कोशिश करता हूं

 console.log(buf[0]);  // This prints --> [ 

मैंने कोशिश की कि इसे भी फेंक दिया जाए SyntaxError: Unexpected token o in JSON at position 2

मुझे इसे वास्तविक वस्तु के रूप में देखने की आवश्यकता है जैसे मैंने बनाया (मेरा मतलब है ऊपर घोषित की तरह)।

कृपया सहायता कीजिए..


({"id":"value"}).toString() === '[object Object]' //true
एरिक होडोंस्की

new Buffer()पदावनत किया गया है। यहां देखें: nodejs.org/api/buffer.html#buffer_new_buffer_array
स्पेंसर

जवाबों:


181

आपको कॉल न करके, जस्सन को कठोर करने की आवश्यकता है toString

var buf = Buffer.from(JSON.stringify(obj));

और स्ट्रिंग को जसन ओब्ज में परिवर्तित करने के लिए:

var temp = JSON.parse(buf.toString());

1
जरूरत नहीं हैnew
jpillora

2
बेहतर समाधान नहीं है? मुझे संख्याओं को स्ट्रिंग में बदलना पसंद नहीं है।
बेनोइट

1
यह काम नहीं करेगा अगर वहाँ एक और बफर क्षेत्र हैobj
gilamran

7
वास्तव में, यहां स्ट्रैस्ट्रिंग की जरूरत नहीं है। groups.google.com/forum/#!topic/nodejs/hybuh7DbQkM
Dzenly

1
मेरे लिए, यह तब काम किया जब मैंने JSON.stringify को लिया और ऑब्जेक्ट को सीधे मापदंडों के अंदर रखा, जैसे: var buf = Buffer.from ({key: 'value', key: 'value', key: 'value' , कुंजी: 'मूल्य', कुंजी: 'मूल्य'});
जॉर्ज मौरिसियो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.