# Again get data from a payload

**URL:** <https://discourse.nodered.org/t/again-get-data-from-a-payload/80800>\
**Category:** General\
**Created:** [25 August 2023 16:00 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800 "2023-08-25T16:00:56Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [25 August 2023 16:00 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/1 "2023-08-25T16:00:56Z")

</div>

Hi,  
i have again a problem to get data into a VAR.....  
i copy the follow path in the debug area:  
payload.result["2023-08-26"]  
But i get a error in my function. "TYPE ERROR"  
And the second problem is:  
on next day the name of date change!  
if it possible to say "get the second data in the result" ?  
you can see all data in the screenshot:

 ![verzweifelung](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/5/b/5b86b34cddbda1e08e221a8f9c83cc04c5abfdb6.png)

---

<div class="post-metadata">

**Author:** ![stefan24](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stefan24/32/23075_2.png) [@stefan24](https://discourse.nodered.org/u/stefan24)\
**Post date:** [25 August 2023 16:15 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/2 "2023-08-25T16:15:34Z")

</div>

> [@einfach112](#):
>
> payload.result["2023-08-26"]

[edited] you are right.

explanation see [Extract data from object - #8 by TotallyInformation](https://discourse.nodered.org/t/extract-data-from-object/89/8)

But this structure (build by the source of this data) does not make much sense to me.  
`today` and `next day` instead of the date would definitely make more sense.  
I really don't know, if you can automatically insert the formatted date of the next date each time.

---

<div class="post-metadata">

**Author:** ![ghayne](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ghayne/32/39_2.png) [@ghayne](https://discourse.nodered.org/u/ghayne)\
**Post date:** [25 August 2023 16:15 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/3 "2023-08-25T16:15:50Z")

</div>

If you hover over the value you want 3 icons will appear to the right of the value.  
If you press the leftmost icon, the path to the value will be copied to the clipboard, you can then paste this into your function.

Read this guide for more information on the structure of messages:  
[https://nodered.org/docs/user-guide/messages](https://nodered.org/docs/user-guide/messages)

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [25 August 2023 16:19 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/4 "2023-08-25T16:19:06Z")

</div>

Hi,  
Ich sehe gerade deutsch geht bei dir auch.....  
Meine Hoffnung war zu sagen:  
Kopiere in die Variable immer den 2ten Wert auf dem Result

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [25 August 2023 16:21 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/5 "2023-08-25T16:21:10Z")

</div>

Hi, i have it done!  
see my post above:  
i copy the follow path in the debug area:  
payload.result["2023-08-26"]

By that I meant that I used the copy path button

sorry my english is not so good...

---

<div class="post-metadata">

**Author:** ![stefan24](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stefan24/32/23075_2.png) [@stefan24](https://discourse.nodered.org/u/stefan24)\
**Post date:** [25 August 2023 16:22 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/6 "2023-08-25T16:22:00Z")

</div>

He wrote:

> "Always copy the 2nd value on the result into the variable"

Ich denke, das sollte auch klappen. Ich stelle Dein Beispiel bei mir mal nach. Moment ...

---

<div class="post-metadata">

**Author:** ![ghayne](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ghayne/32/39_2.png) [@ghayne](https://discourse.nodered.org/u/ghayne)\
**Post date:** [25 August 2023 16:22 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/7 "2023-08-25T16:22:18Z")

</div>

> [@einfach112](#):
>
> sorry my english is not so good...

Mein Deutsch ist auch ziemlich gut 🙂

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [25 August 2023 16:22 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/8 "2023-08-25T16:22:24Z")

</div>

thank you

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [25 August 2023 16:22 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/9 "2023-08-25T16:22:58Z")

</div>

hätte ich das vorher gewusst LOL

---

<div class="post-metadata">

**Author:** ![Sean-McG](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/sean-mcg/32/54677_2.png) [@Sean-McG](https://discourse.nodered.org/u/Sean-McG)\
**Post date:** [25 August 2023 16:26 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/10 "2023-08-25T16:26:40Z")

</div>

the are needed because of the - in the name

You could calculate tomorrows date and use that to select the correct value

---

<div class="post-metadata">

**Author:** ![stefan24](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stefan24/32/23075_2.png) [@stefan24](https://discourse.nodered.org/u/stefan24)\
**Post date:** [25 August 2023 17:10 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/11 "2023-08-25T17:10:13Z")

</div>

```auto
var test = {payload: 
            {result:
                {"2023-08-25": 3342323423,
                 "2023-08-26": 33423111423
            }}};

var test2 = { payload: "" };

test2.payload = test.payload.result["2023-08-26"];

return test2;

```

I built your object in a function node. If you complete it with a debug node, the result is the second value.  
But I did not manage to get the value of the second object, nevertheless what it is called.  
Somebody else have to jump in, I am afraid.

---

<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:** [25 August 2023 17:40 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/12 "2023-08-25T17:40:56Z")

</div>

If you always want the second value of the object, you may have issues if the object is not created in same order, if it is this should work.

```auto
msg.payload = {
    result: {
        "2023-08-25": 3342323423,
        "2023-08-26": 33423111423
    }
}
msg.payload = Object.values(msg.payload.result)[1];
return msg;

```

Or if the position are changing then you can as @Sean-McG suggests, you can calculate tomorrows date.

```auto
msg.payload = {
    result: {
        "2023-08-25": 3342323423,
        "2023-08-26": 33423111423
    }
}
const date = new Date()
date.setDate(date.getDate() + 1);
let tomorrow = date.toISOString().split("T")[0];
msg.payload = msg.payload.result[tomorrow];
return msg;

```

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [27 August 2023 11:40 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/13 "2023-08-27T11:40:45Z")

</div>

thank you for your answer, but it dont work with the first one. But this one that what i want....

```auto
var prognose = Object.values(msg.payload.result)[1];

return [
    { payload: prognose },
]

```

the result is:  
TypeError: Cannot convert undefined or null to object

---

<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:** [27 August 2023 11:44 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/14 "2023-08-27T11:44:25Z")

</div>

Not enough info to help you.  
Please provide an example flow with the input data in a inject node.  
[edit] I would think your input is not consistent and therefore the `prognose` could be undefined,. But really need more info to be sure.

---

<div class="post-metadata">

**Author:** ![stefan24](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/stefan24/32/23075_2.png) [@stefan24](https://discourse.nodered.org/u/stefan24)\
**Post date:** [27 August 2023 11:46 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/15 "2023-08-27T11:46:34Z")

</div>

> [@einfach112](#):
>
> But i get a error in my function. "TYPE ERROR"

> [@einfach112](#):
>
> TypeError: Cannot convert undefined or null to object

I think your syntax does not work:

> [@einfach112](#):
>
> ```auto
> return [
> { payload: prognose },
> ]
> 
> ```

try another syntax:

```auto
var msg2 = { payload: "" };

msg2.payload = Object.values(msg.payload.result)[1];

return msg2;

```

---

<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:** [27 August 2023 11:48 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/16 "2023-08-27T11:48:39Z")

</div>

> [@einfach112](#):
>
> ```auto
> return [
> { payload: prognose },
> ]
> 
> ```

This is fine and should work, the `[,]` are not required unless you want to send to multiple outputs.

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [27 August 2023 12:03 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/17 "2023-08-27T12:03:36Z")

</div>

sorry thats to much information for me.  
In the picture you can see what data is incomming into my function.  
i need the data in line 2: 1724368  
 ![verzweifelung2](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/1/1/111dab1a7ff0506e4e8384d7759421fde741ef42.png)

now i have the follow function but it not work:

```auto
var prognose = Object.values(msg.payload.result)[1];

return [
    { payload: prognose }
]

```

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [27 August 2023 12:08 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/18 "2023-08-27T12:08:41Z")

</div>

i attempt to export the flow an paste it here

---

<div class="post-metadata">

**Author:** ![einfach112](https://avatars.discourse-cdn.com/v4/letter/e/3da27b/32.png) [@einfach112](https://discourse.nodered.org/u/einfach112)\
**Post date:** [27 August 2023 12:12 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/19 "2023-08-27T12:12:22Z")

</div>

it is not possible to paste it here. To much data

here is a link to get the flow.

[flow](https://pastecode.io/s/hwmhjai2)

---

<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:** [27 August 2023 12:36 UTC](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800/20 "2023-08-27T12:36:15Z")

</div>

To help to see what is going on, what does the function return if you use  
`var prognose = Object.values(msg.payload.result)`

[Next page](https://discourse.nodered.org/t/again-get-data-from-a-payload/80800.md?page=2)
