# Java Script Object to Json array

**URL:** <https://discourse.nodered.org/t/java-script-object-to-json-array/23970>\
**Category:** General\
**Created:** [31 March 2020 12:04 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970 "2020-03-31T12:04:36Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 12:04 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/1 "2020-03-31T12:04:36Z")

</div>

Hi,

I need to convert Java Script Object to Json Array.

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/5/357d6869fe5b349aa4dabf496cfe0ed5c795ac67.png)

 ![image](https://us1.discourse-cdn.com/flex026/uploads/nodered/original/3X/3/8/3829bedc4e12285d819dead13febf3231bc51c3b.png)

Can any one help me. I am new to java scripting.

Thanks in advance

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 12:21 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/2 "2020-03-31T12:21:39Z")

</div>

Could you post your flow ?  
Select all the nodes, right top hamburger menu -\> export.

use the `</>` icon here in the editor before pasting it.

---

<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:** [31 March 2020 12:27 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/3 "2020-03-31T12:27:34Z")

</div>

Objects and Arrays are very different types of structure.

At the moment you have an object that looks like:

```auto
msg.payload = {
   Network: {
      value1: "31",
      value2: "45"
   }
}

```

What do you want the array to look like? Do you want:

```auto
msg.payload = ["31", "45"];

```

Or do you want `value1`, `value2` and `Network` in there somewhere?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 12:40 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/4 "2020-03-31T12:40:21Z")

</div>

I want return as,  
msg.payload= array which will hold Network value1=31 and value2=45

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 12:42 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/5 "2020-03-31T12:42:06Z")

</div>

```auto
[{"id":"60f7cc3e.df5c04","type":"inject","z":"9f64ee38.cd9a1","name":"tempdata","topic":"","payload":"{\"Network\":{\"value1\":\"31\",\"value2\":\"45\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":160,"y":1100,"wires":[["a846eda6.9fbc6"]]},{"id":"a846eda6.9fbc6","type":"json","z":"9f64ee38.cd9a1","name":"","property":"payload","action":"obj","pretty":true,"x":310,"y":1160,"wires":[["37cb8ede.15b722","78cc22f3.07a3dc"]]},{"id":"37cb8ede.15b722","type":"function","z":"9f64ee38.cd9a1","name":"testing","func":"var tempdata = msg.payload;\n//var obj= Object.values(tempdata)\nconsole.log(Object.values(tempdata));\n","outputs":1,"noerr":0,"x":370,"y":1260,"wires":[["dbe474fa.8b5458"]]}]

```

---

<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:** [31 March 2020 12:43 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/6 "2020-03-31T12:43:24Z")

</div>

> [@neelanjan](#):
>
> which will hold Network value1=31 and value2=45

That's doesn't really make it much clearer.

Do you mean something like: `["31", "45"]` or something else? Are you able to provide an actual example of the JSON you'd like to get?

Can you explain _why_ you want this as an array? That may help us understand what format you want.

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 12:50 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/7 "2020-03-31T12:50:32Z")

</div>

Actual Json Format: **{"Network":{"value":"31","time":"31-03-2020#12:26:45"}}**

Need to format the above data to this format as below:  
**{"d":[{"tag":"Network","value":31}]**

This is the conversion I need to achieve  
After the first part is over, I will try to parse the time and date part.  
I think now, my objective is clear

---

<div class="post-metadata">

**Author:** ![afelix](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/afelix/32/9743_2.png) [@afelix](https://discourse.nodered.org/u/afelix)\
**Post date:** [31 March 2020 14:41 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/8 "2020-03-31T14:41:47Z")

</div>

Take a look at JSONata: [http://docs.jsonata.org/overview.html](http://docs.jsonata.org/overview.html)  
It is a query and transformation language available for use in the change node. You can use it to change one object into another following rules you define in that language. It sounds like the most useful one for your situation, as the objects don't even look alike in the slightest.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 15:39 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/9 "2020-03-31T15:39:57Z")

</div>

> [@neelanjan](#):
>
> Actual Json Format: **{"Network":{"value":"31","time":"31-03-2020#12:26:45"}}**

Your flow example shows:

`{"Network":{"value1":"31","value2":"45"}}`

What should the output become ?

`{"d":[{"tag":"Network","value":31}]` - where is value 2 ?

Do you want:

`{"d":[{"tag":"Network","value":31},{"tag":"Network","value":45}]}` ?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 15:42 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/10 "2020-03-31T15:42:24Z")

</div>

Yes. This is what I want.  
Can you tell me the method to get this.

`{"d":[{"tag":"Network","value":31},{"tag":"Network","value":45}]}` .......Yes

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 15:45 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/11 "2020-03-31T15:45:11Z")

</div>

One more question:

Is your "testdata" actual data ? ie. "value1", "value2" - or is it "value" ?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 15:47 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/12 "2020-03-31T15:47:20Z")

</div>

it is only "value" not "value1" or "value2"

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 15:52 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/13 "2020-03-31T15:52:11Z")

</div>

But then your "testdata" example is not correct.

```auto
{"Network":{"value1":"31","value2":"45"}}

```

Could you give example data that matches reality ?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 16:02 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/14 "2020-03-31T16:02:36Z")

</div>

Pls do not consider testdata example.  
Real Data Packet:  
**{"Network":{"value":"28","time":"31-03-2020#21:26:45"}}**  
Array Type packet to which above needs to get converted:  
**{"d":[{"tag":"Network","value":28},{"tag":"time","value":21:26:45},{"tag":"date","value":31-03-2020}**

the main packet is just a network signal packet with date and time stamp.  
Is this ok now?

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 16:04 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/15 "2020-03-31T16:04:28Z")

</div>

If you receive 1 json string with 1 timestamp, how do you create an array with 3 timestamp values ?  
Provide more data that we can work with.

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 16:09 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/16 "2020-03-31T16:09:49Z")

</div>

I just want to parse the main json string in to an array of three objects.  
What type of data you want?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 16:12 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/17 "2020-03-31T16:12:02Z")

</div>

Real Data Packet:  
**{"Network":{"value":"28","time":"31-03-2020#21:26:45"}}**  
We can use array for example  
**{"d":[{"tag":"Network","value":28}],"ts":"2020-03-31T20:45:57+0530"}**

is this info ok?

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 16:13 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/18 "2020-03-31T16:13:24Z")

</div>

Yes you are right.

---

<div class="post-metadata">

**Author:** ![bakman2](https://sea2.discourse-cdn.com/flex026/user_avatar/discourse.nodered.org/bakman2/32/6207_2.png) [@bakman2](https://discourse.nodered.org/u/bakman2)\
**Post date:** [31 March 2020 16:29 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/19 "2020-03-31T16:29:43Z")

</div>

Basic idea.

```auto
[{"id":"c15f3c09.ccbb58","type":"inject","z":"8a79ddd6.20ebf","name":"tempdata","topic":"","payload":"{\"Network\":{\"value\":\"28\",\"time\":\"31-03-2020#21:26:45\"}}","payloadType":"json","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":255,"y":288,"wires":[["a38bf69e.e68bb"]],"l":false},{"id":"a38bf69e.e68bb","type":"json","z":"8a79ddd6.20ebf","name":"","property":"payload","action":"obj","pretty":true,"x":303,"y":288,"wires":[["fa5735c7.dc066"]],"l":false},{"id":"fa5735c7.dc066","type":"function","z":"8a79ddd6.20ebf","name":"","func":"value = parseInt(msg.payload.Network.value)\ntime = msg.payload.Network.time\n\nreturn {payload:{d:[{tag:\"Network\",value:value}],ts:time }}","outputs":1,"noerr":0,"x":351,"y":288,"wires":[["e5dbd547.95d73"]],"l":false},{"id":"e5dbd547.95d73","type":"debug","z":"8a79ddd6.20ebf","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"true","targetType":"full","x":434,"y":288,"wires":[]}]

```

Timestamp conversion is a different ballgame.

---

<div class="post-metadata">

**Author:** ![neelanjan](https://avatars.discourse-cdn.com/v4/letter/n/7cd45c/32.png) [@neelanjan](https://discourse.nodered.org/u/neelanjan)\
**Post date:** [31 March 2020 16:40 UTC](https://discourse.nodered.org/t/java-script-object-to-json-array/23970/20 "2020-03-31T16:40:26Z")

</div>

Ok. Thanks for the solution.

[Next page](https://discourse.nodered.org/t/java-script-object-to-json-array/23970.md?page=2)
