var jsontemp = {}
jsontemp.a = item
jsontemp.rest = jsonstr.rest
jsontemp.ff = jsonstr.ff
payload.push(jsontemp)
var jsontemp = jsonstr means both indicate to the same object, not a
deeply copy
On Thursday, August 4, 2016 at 5:08:29 AM UTC+8, Tippur wrote:
>
> I have a json object that has an array field
>
> I want to take that object and break it into individual json objects.
>
> For example { a:[ 'x', 'y'], rest: 'fdsf', ff: 'll' } should be broken
> into
>
> { a: 'x', rest: 'fdsf', ff: 'll' } and { a: 'y', rest: 'fdsf', ff: 'll' }
>
> Here is my code:
> ##################################
>
> var str='{ \
>
> "a": ["x", "y"], \
>
> "rest": "fdsf", \
>
> "ff": "ll" \
>
> }'
>
> jsonstr=JSON.parse(str);
>
> var payload=[];
>
> if (Array.isArray(jsonstr['a'])){
>
> console.log("Is array");
>
> var payload=[];
>
> jsonstr['a'].forEach(function(item, index) {
>
> console.log(item);
>
> jsontemp=jsonstr;
>
> jsontemp.a=item;
>
> console.log(jsontemp);
>
> payload.push(jsontemp);
>
> });
>
> }
>
> console.log(payload);
>
> ##################################
>
> Here is the output
>
> [ { a: 'y', rest: 'fdsf', ff: 'll' },
>
> { a: 'y', rest: 'fdsf', ff: 'll' } ]
>
>
> As you can see, the object appended to the final payload has the same
> element (payload.a)
>
>
> What am I doing wrong?
>
>
> - Shekar
>
>
>
>
>
>
>
--
Job board: http://jobs.nodejs.org/
New group rules:
https://gist.github.com/othiym23/9886289#file-moderation-policy-md
Old group rules:
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
---
You received this message because you are subscribed to the Google Groups
"nodejs" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/nodejs/33c5d39d-a32e-4310-888f-7ed0984c8f33%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.