# Moving whole object one level down

**URL:** <https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030>\
**Category:** General\
**Created:** [16 November 2020 21:55 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030 "2020-11-16T21:55:44Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![JSONata](https://avatars.discourse-cdn.com/v4/letter/j/85e7bf/32.png) [@JSONata](https://discourse.nodered.org/u/JSONata)\
**Post date:** [16 November 2020 21:55 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/1 "2020-11-16T21:55:44Z")

</div>

Hallo,

I want to move the whole message one level down. So everything what is in the message should go to payload.  
I try with

```auto
{
    "payload" : $
}

```

On [try.jsonata.org](http://try.jsonata.org) it works perfectly, see [https://try.jsonata.org/-EXMYr4nV](https://try.jsonata.org/-EXMYr4nV)

If I try it with change node  
 ![grafik](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/d/f/dfb9b0e91f6122043c4c8b117f1fdbe13100f415.png)  
I get an error "[Circular ~]"

Heres my flow

`[{"id":"38d4e33d.46e48c","type":"inject","z":"f4567829.04c76","name":"","props":[{"p":"object1","v":"{\"test\":\"test\"}","vt":"json"},{"p":"object2","v":"{ \"test\" : \"test\" }","vt":"json"},{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"myPayload","payloadType":"str","x":280,"y":300,"wires":[["6935444e.d3cc8c"]]},{"id":"f0a773ee.417d58","type":"debug","z":"f4567829.04c76","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","statusVal":"","statusType":"auto","x":770,"y":300,"wires":[]},{"id":"6935444e.d3cc8c","type":"change","z":"f4567829.04c76","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"$","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":530,"y":300,"wires":[["f0a773ee.417d58"]]}]`

---

<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:** [16 November 2020 22:33 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/2 "2020-11-16T22:33:51Z")

</div>

Function node...

```auto
return { 
  payload : msg
}

```

---

<div class="post-metadata">

**Author:** ![JSONata](https://avatars.discourse-cdn.com/v4/letter/j/85e7bf/32.png) [@JSONata](https://discourse.nodered.org/u/JSONata)\
**Post date:** [16 November 2020 22:49 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/3 "2020-11-16T22:49:39Z")

</div>

Works. Thank you very much.

The question still is. Why does it work on [try.jsonata.org](http://try.jsonata.org), but not in Node-Red. Thats confusing.

---

<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:** [16 November 2020 22:53 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/4 "2020-11-16T22:53:32Z")

</div>

I find JSONata confusing 😃

For me, the function node is much easier & is [definitely faster](https://discourse.nodered.org/t/will-sort-node-sort-multiple-arrays/4612/4) & there are far more JS programmers than JSONata programmers around for when I get stuck.

But I it might be an issue - I dont know. Lets see if anyone else responds.

---

<div class="post-metadata">

**Author:** ![knolleary](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/knolleary/32/3_2.png) [@knolleary](https://discourse.nodered.org/u/knolleary)\
**Post date:** [16 November 2020 22:56 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/5 "2020-11-16T22:56:48Z")

</div>

When you try it on the JSONata website, you start with object A, and you create a new object B that has its payload set to Object A.

In the Change node, you have Object A, and try to set A.payload to A - which creates a circular reference and will fail.

They are not the same operations.

---

<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:** [30 November 2020 22:56 UTC](https://discourse.nodered.org/t/moving-whole-object-one-level-down/36030/6 "2020-11-30T22:56:56Z")

</div>

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