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.

Reply via email to