# Buffer to JSON Obj Problem

**URL:** <https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546>\
**Category:** General\
**Created:** [20 August 2019 10:44 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546 "2019-08-20T10:44:38Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![Connicat](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/connicat/32/5202_2.png) [@Connicat](https://discourse.nodered.org/u/Connicat)\
**Post date:** [20 August 2019 10:44 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/1 "2019-08-20T10:44:38Z")

</div>

I have a TCPIP node that outputs as follows;  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/e/e297c20461d8d5b010ce0b2a97fa71faeade79f1.png)

If I use a function node to do msg.payload.toString() I get;  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/e/e51753c1cd0e503a5037a4d7ffec084082f40965.png)

But if I then use a JSON node I get this;  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/8/80681c824612b54ae396f313aaf819591c68a793.png)

Position 1444 in the buffer is this;  
 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/2X/b/b708ebe742bffed189544bde13ac70d4f9e381a5.png)

Ive tried all sorts and just cant find anything that works.

Any pointers would be appreciated.

Thx

---

<div class="post-metadata">

**Author:** ![ukmoose](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ukmoose/32/13_2.png) [@ukmoose](https://discourse.nodered.org/u/ukmoose)\
**Post date:** [20 August 2019 10:57 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/2 "2019-08-20T10:57:06Z")

</div>

From the looks of your msg.payload string there's a return character at the end of the string.  
Try stripping that out in your function node before the JSON node.

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [20 August 2019 11:22 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/3 "2019-08-20T11:22:22Z")

</div>

it's the 00 at the end that may be the issue - but yes - either way - stripping it off with .substr is probably the easiest way to go.

---

<div class="post-metadata">

**Author:** ![Connicat](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/connicat/32/5202_2.png) [@Connicat](https://discourse.nodered.org/u/Connicat)\
**Post date:** [20 August 2019 12:21 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/4 "2019-08-20T12:21:59Z")

</div>

Many thanks for the prompt responses.

```auto
var str = msg.payload.toString();
msg.payload = str.substr(0,1443);
return msg;

```

Works like a charm!

---

<div class="post-metadata">

**Author:** ![Connicat](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/connicat/32/5202_2.png) [@Connicat](https://discourse.nodered.org/u/Connicat)\
**Post date:** [20 August 2019 13:08 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/5 "2019-08-20T13:08:05Z")

</div>

.....until payload length changes then it fails. Changed function to;

```auto
var str = msg.payload.toString();
msg.payload = str.replace(/\0/,"");
return msg;

```

---

<div class="post-metadata">

**Author:** ![dceejay](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/dceejay/32/38_2.png) [@dceejay](https://discourse.nodered.org/u/dceejay)\
**Post date:** [20 August 2019 14:32 UTC](https://discourse.nodered.org/t/buffer-to-json-obj-problem/14546/6 "2019-08-20T14:32:05Z")

</div>

just fr completeness you can also use .slice - which will take negative numbers to count from the end so

```
msg.payload = msg.payload.toString().slice(0,-1);
return msg;
```
