# Converting buffer to string

**URL:** <https://discourse.nodered.org/t/converting-buffer-to-string/21244>\
**Category:** General\
**Created:** [4 February 2020 08:12 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244 "2020-02-04T08:12:29Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mfabdul01](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mfabdul01/32/16740_2.png) [@mfabdul01](https://discourse.nodered.org/u/mfabdul01)\
**Post date:** [4 February 2020 08:12 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/1 "2020-02-04T08:12:29Z")

</div>

Hi,

I am trying to convert a buffer data to string data

Buffer data i am pushing in as follows,  
[123,34,100,97,116,97,34,58,34,52,49,49,48,48,52,34,44,32,34,112,111,114,116,34,58,50,44,32,34,116,105,109,101,34,58,34,105,109,109,101,100,105,97,116,101,108,121,34,125,0]

the data displays when it converted to string as below,  
{"data":"411004", "port":2, "time":"immediately"}

how should i need to proceed in node red?

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [4 February 2020 08:34 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/2 "2020-02-04T08:34:13Z")

</div>

You can use a function node for the conversion. Have a look at NodeJS' `Buffer.toString()` method.

[https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer\_buf\_tostring\_encoding\_start\_end](https://nodejs.org/dist/latest-v10.x/docs/api/buffer.html#buffer_buf_tostring_encoding_start_end)

---

<div class="post-metadata">

**Author:** ![Colin](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/colin/32/17040_2.png) [@Colin](https://discourse.nodered.org/u/Colin)\
**Post date:** [4 February 2020 10:07 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/3 "2020-02-04T10:07:57Z")

</div>

Actually I think it is `myBuffer.toString()` that you want. Try that and feed the result to a debug node to check it is ok. If it is then you should be able to send that through a JSON node to convert it to a js object which will make life even easier.  
Where is this coming from? There may be other alternative solutions.

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [4 February 2020 10:32 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/4 "2020-02-04T10:32:09Z")

</div>

Ah, sorry. That's what I meant. I corrected my post. 🙈

---

<div class="post-metadata">

**Author:** ![mfabdul01](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mfabdul01/32/16740_2.png) [@mfabdul01](https://discourse.nodered.org/u/mfabdul01)\
**Post date:** [4 February 2020 12:33 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/5 "2020-02-04T12:33:41Z")

</div>

@kuema @Colin thanks for the replay i did convert this buffer data into string  
var b=Buffer.from(msg.payload);  
var s=b.toString();  
var out=s;  
msg.payload= out;  
return msg;

but i need it convert it to json string while i am using a json node its giving the data as follows,  
""{"data":"411004", "port":2, "time":"immediately"}\u0000""  
how to eliminate the "" from this frame?

---

<div class="post-metadata">

**Author:** ![mfabdul01](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/mfabdul01/32/16740_2.png) [@mfabdul01](https://discourse.nodered.org/u/mfabdul01)\
**Post date:** [4 February 2020 12:36 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/6 "2020-02-04T12:36:52Z")

</div>

i am sending a data from my system platform through MQTT broker to my gateway . it is sending a buffer string data thats why i am trying to convert it in JSON on node red

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [4 February 2020 12:37 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/7 "2020-02-04T12:37:10Z")

</div>

Far too complicated. 😅

If your payload is already a Buffer, then the following should suffice:

```auto
msg.payload = msg.payload.toString();
return msg;

```

That will output a string, which is your JSON I suppose. Use the JSON node afterwards.

---

<div class="post-metadata">

**Author:** ![kuema](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/kuema/32/6542_2.png) [@kuema](https://discourse.nodered.org/u/kuema)\
**Post date:** [4 February 2020 12:38 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/8 "2020-02-04T12:38:51Z")

</div>

MQTT? I think this could be even simpler. You can choose the output format of the MQTT in node. Make sure it's set to 'a parsed JSON object', not buffer.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/1X/d073cd938eafa2e558d7c2cd59003b3ef4963033.png) [@system](https://discourse.nodered.org/u/system)\
**Post date:** [4 April 2020 12:38 UTC](https://discourse.nodered.org/t/converting-buffer-to-string/21244/9 "2020-04-04T12:38:52Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
