# How to change this object

**URL:** <https://discourse.nodered.org/t/how-to-change-this-object/46395>\
**Category:** General\
**Created:** [28 May 2021 10:43 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395 "2021-05-28T10:43:56Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![ketpa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ketpa/32/42496_2.png) [@ketpa](https://discourse.nodered.org/u/ketpa)\
**Post date:** [28 May 2021 10:43 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/1 "2021-05-28T10:43:56Z")

</div>

I have this

 ![obraz](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/f/5/f5cc3024baffeed13c6ff9a03f0f90a34314eacd.png)  
but I want object like this:  
t10001 : -32767  
t10002 : 0  
ect

---

<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:** [28 May 2021 11:26 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/2 "2021-05-28T11:26:16Z")

</div>

You can do it in a function like this...

```javascript
var data = msg.payload.form.text;
var result = {};
for(let i = 0; i < data.length; i++) {
    let key = data[i].id[0];
    let val = data[i].value[0];
    result[key] = val
}
msg.payload = result;
return msg;

```

Demo flow...

```auto
[{"id":"aa6ae4c8.748108","type":"inject","z":"4b3f21a3.ba434","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"form\":{\"text\":[{\"id\":[\"t10001\"],\"value\":[\"-32767\"]},{\"id\":[\"t10002\"],\"value\":[\"32000\"]}]}}","payloadType":"json","x":690,"y":2600,"wires":[["ee08357c.961768"]]},{"id":"9414e97e.7f7078","type":"debug","z":"4b3f21a3.ba434","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"false","statusVal":"","statusType":"auto","x":1030,"y":2600,"wires":[]},{"id":"ee08357c.961768","type":"function","z":"4b3f21a3.ba434","name":"","func":"var data = msg.payload.form.text;\nvar result = {};\nfor(let i = 0; i < data.length; i++) {\n let key = data[i].id[0];\n let val = data[i].value[0];\n result[key] = val\n}\nmsg.payload = result;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":850,"y":2600,"wires":[["9414e97e.7f7078"]]}]

```

---

<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:** [28 May 2021 11:26 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/3 "2021-05-28T11:26:23Z")

</div>

You can do this in a change node using JSONata expression

```auto
payload.form.text.${id:value}

```

e.g.

```auto
[{"id":"8c8ae4ca.852eb","type":"inject","z":"c74669a0.6a34f8","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"{\"form\":{\"text\":[{\"id\":\"1\",\"value\":10},{\"id\":\"2\",\"value\":20}]}}","payloadType":"json","x":190,"y":4300,"wires":[["db9adee9.06f1e8"]]},{"id":"db9adee9.06f1e8","type":"change","z":"c74669a0.6a34f8","name":"","rules":[{"t":"set","p":"payload","pt":"msg","to":"payload.form.text.${id:value}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":350,"y":4380,"wires":[["6220f2d8.c1e9dc"]]},{"id":"6220f2d8.c1e9dc","type":"debug","z":"c74669a0.6a34f8","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":650,"y":4200,"wires":[]}]

```

---

<div class="post-metadata">

**Author:** ![ketpa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ketpa/32/42496_2.png) [@ketpa](https://discourse.nodered.org/u/ketpa)\
**Post date:** [28 May 2021 12:23 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/4 "2021-05-28T12:23:18Z")

</div>

Invalid JSONata expression: Key in object structure must evaluate to a string; got: ["t10001"]  
 ![obraz](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/4/1/4113ac154ed58e5051c15e1999673e020f85fbe1.png)

value = " "

---

<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:** [28 May 2021 13:45 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/5 "2021-05-28T13:45:28Z")

</div>

Please supply an example of the incoming payload that can be copied, If this fails.

It looks like you values are in arrays  
try

```auto
payload.form.text.${id[0]:value[0]}

```

---

<div class="post-metadata">

**Author:** ![ketpa](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/ketpa/32/42496_2.png) [@ketpa](https://discourse.nodered.org/u/ketpa)\
**Post date:** [31 May 2021 07:19 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/6 "2021-05-31T07:19:59Z")

</div>

> [@E1cid](#):
>
> `payload.form.text.${id[0]:value[0]}`

I think, problem is witch char ""

---

<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 July 2021 07:20 UTC](https://discourse.nodered.org/t/how-to-change-this-object/46395/7 "2021-07-30T07:20:34Z")

</div>

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