# Extract values JSON string from pcap

**URL:** <https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436>\
**Category:** General\
**Created:** [6 November 2020 08:48 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436 "2020-11-06T08:48:09Z")\
**Posts on this page:** 14\
**Page:** 2

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 November 2020 15:34 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/21 "2020-11-06T15:34:12Z")

</div>

You would acccess the info in the function node at  
msg.payload.payload.payload.rest of path

But probably better to move the object. move msg.payload.payload.payload to msg.payload. or another variable.  
so at beginning of function  
let data = msg.payload.payload.payload;

then access data.dhost.addr[1];

---

<div class="post-metadata">

**Author:** ![rparada](https://avatars.discourse-cdn.com/v4/letter/r/73ab20/32.png) [@rparada](https://discourse.nodered.org/u/rparada)\
**Post date:** [6 November 2020 21:46 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/22 "2020-11-06T21:46:12Z")

</div>

> [@E1cid](#):
>
> data = msg.payload.payload.payload;
> 
> then access data.dhost.addr[1];

I've tried

```auto
data = msg.payload.payload.payload;
p = data.dhost.addr[1];
return p;

```

But says

```auto
11/6/2020, 10:45:31 PMnode: cf7729c9.d2926function : (error)
"TypeError: Cannot read property 'addr' of undefined"

```

---

<div class="post-metadata">

**Author:** ![Steve-Mcl](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/steve-mcl/32/4826_2.png) [@Steve-Mcl](https://discourse.nodered.org/u/Steve-Mcl)\
**Post date:** [6 November 2020 22:23 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/23 "2020-11-06T22:23:24Z")

</div>

Use the path copy function to get exact path to variable

> [@Steve-Mcl](#):
>
> [nodered.org](https://nodered.org/docs/user-guide/messages)
> 
> ### [Working with messages : Node-RED](https://nodered.org/docs/user-guide/messages)
> 
> I think in the first video around 1m36s whould give you a hint.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [6 November 2020 22:40 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/24 "2020-11-06T22:40:00Z")

</div>

Try `let data = msg.payload.payload`;  
or as steve suggests copy the path directly from the debug output in the side panel.

Also `return p;` will result in Error function tried to return number, You have to return an object, not a string or number.

---

<div class="post-metadata">

**Author:** ![rparada](https://avatars.discourse-cdn.com/v4/letter/r/73ab20/32.png) [@rparada](https://discourse.nodered.org/u/rparada)\
**Post date:** [7 November 2020 09:26 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/25 "2020-11-07T09:26:19Z")

</div>

I've done the "copy the path" from a given variable, below [0...9] is the variable 0: 0xff

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/b/9/b9a56c3e6145475a5a4d74e926eec3f0fe50cc11.png)

The copied path is:

`payload.payload.payload.payload.data[0]`

Then, inside the function done I just simply code:

`msg = msg.payload.payload.payload.payload.payload.data[0]`  
`return msg;`

And I get this error:

`"TypeError: Cannot read property 'data' of undefined"`

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [7 November 2020 09:41 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/26 "2020-11-07T09:41:27Z")

</div>

> [@rparada](#):
>
> `payload.payload.payload.payload.data[0]`
> 
> Then, inside the function done I just simply code:
> 
> `msg = msg.payload.payload.payload.payload.payload.data[0]`  
> `return msg;`

Your path has 4 payloads, but you msg = has 5 payloads. Normally you just add msg. to path.

---

<div class="post-metadata">

**Author:** ![rparada](https://avatars.discourse-cdn.com/v4/letter/r/73ab20/32.png) [@rparada](https://discourse.nodered.org/u/rparada)\
**Post date:** [7 November 2020 09:54 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/27 "2020-11-07T09:54:10Z")

</div>

Like this:

`msg = msg.payload.payload.payload.payload.data[0];`  
`return msg;`

I get:

`11/7/2020, 10:53:14 AMnode: cf7729c9.d2926function : (error) "Function tried to send a message of type number"`

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [7 November 2020 09:56 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/28 "2020-11-07T09:56:01Z")

</div>

I said in a previous comment, you have to return an object  
msg.payload = msg.payload.payload.etc;

---

<div class="post-metadata">

**Author:** ![rparada](https://avatars.discourse-cdn.com/v4/letter/r/73ab20/32.png) [@rparada](https://discourse.nodered.org/u/rparada)\
**Post date:** [7 November 2020 10:30 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/29 "2020-11-07T10:30:34Z")

</div>

I though i can use data as a variable. I got this object

![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/2/c/2cdb67198cfc47dc1d0ab3e559550bc514dd1292.png)

How can I get the value 255 from payload?

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [7 November 2020 10:34 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/30 "2020-11-07T10:34:00Z")

</div>

Where ever you need to input 255, use msg.payload

---

<div class="post-metadata">

**Author:** ![rparada](https://avatars.discourse-cdn.com/v4/letter/r/73ab20/32.png) [@rparada](https://discourse.nodered.org/u/rparada)\
**Post date:** [7 November 2020 11:02 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/31 "2020-11-07T11:02:30Z")

</div>

In case I need to collect multiple values, how can I do to keep those values in different variables? Since using msg.payload will only collect one unique value. I mean, I want to keep all values from 0 to 99 for later insert them into a JSON structure.

---

<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:** [7 November 2020 11:58 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/32 "2020-11-07T11:58:19Z")

</div>

@rpanda I think it would be worth your while spending an hour or so working right through the Node-red Essentials video guides that are linked from the node-red docs. That would save you a lot of time in the long run.

---

<div class="post-metadata">

**Author:** ![E1cid](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/e1cid/32/77971_2.png) [@E1cid](https://discourse.nodered.org/u/E1cid)\
**Post date:** [7 November 2020 13:04 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/33 "2020-11-07T13:04:38Z")

</div>

msg.any\_name\_you\_wish = msg.payload.etc

---

<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:** [21 November 2020 13:04 UTC](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436/34 "2020-11-21T13:04:38Z")

</div>

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

[Previous page](https://discourse.nodered.org/t/extract-values-json-string-from-pcap/35436.md?page=1)
