简体   繁体   中英

Create a JSON Array from dynamic values in jquery

I need to create the array like {"groupslist":{"groupname":["user1","user2","user3"],"groupname2":["user1","user2","user3"],"groupname3":["user1","user2","user3"]}} which the values are get from the different ajax call to the server, in first ajax call i get the grouplists like groupname, groupname2 etc and in the success function i make the ajax call for each groupname and get the user for the particular groupname and create the array and push that to main grouplist, The output am getting is not correct i think i have to use some callbacks to make it correct, please help me and tell me `

$.ajax({
    url: 'get_group_list',
    type: 'POST',
    success: function (data) {
        groupnamess=data.replace("[","").replace(/"/g, "").replace("]","").split(',');
        console.log("groupnameeeee",groupnamess);
    for(var i in groupnamess)
    {
     grup[i]=groupnamess[i];
     userss.push({
            label:groupnamess[i],
            value:groupnamess[i]
          });
    grupss.push(groupnamess[i]);
    }
    for(var i in grupss)

    {
        console.log("geeeeeeeeeeeeeeeeeeeeeeeeee",grupss);
        console.log("geeeeeeeeeeeeeeeeeeeeeeeeee",groupnamess[i]);
         $.ajax({
            url: 'get_user_list',
            type: 'POST',
            data:{'name':groupnamess[i]},   
            success: function (data) {
                console.log("55555555555555555555"+data);
                if(data!='[]')
                {
                    //addy.substr(0, addy.indexOf('.')); 
                    var group=groupnamess[i];
                    console.log("cccccccccccccccccccccc"+group);
                    grouplist[group]=new Array();
                    console.log("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"+data);
                    var usrs=data.replace("[","").replace(/"/g, "").replace("]","").split(',');
                    for(var j in usrs)
                    {
                        grouplist[group].push(usrs[j]);
                        console.log("rrrrrrrrrrrrrrr"+usrs[j]);
                    }
                    console.log('ooooooooooooooooooooooooooo', grouplist);
                    var grp=$.parseJSON(grouplist);
                    consoloe.log(grp);

                }
            },
            error:function(XMLHttpRequest, textStatus, errorThrown)
            {
                console.log('error', errorThrown);
            }
        }); 
        console.log("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee");
    }   
    users=userss;
    console.log("gupppppppppppppppppp"+grupss);
    console.log('success', users);
    },
    error:function(XMLHttpRequest, textStatus, errorThrown)
    {
     console.log('error', errorThrown);
    }
});`

output is

  groupnameeeee ["user00", "super user", "supreme user"] myjs.js:35 geeeeeeeeeeeeeeeeeeeeeeeeee ["user00", "super user", "supreme user"] myjs.js:48 geeeeeeeeeeeeeeeeeeeeeeeeee user00 myjs.js:49 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee myjs.js:80 geeeeeeeeeeeeeeeeeeeeeeeeee ["user00", "super user", "supreme user"] myjs.js:48 geeeeeeeeeeeeeeeeeeeeeeeeee super user myjs.js:49 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee myjs.js:80 geeeeeeeeeeeeeeeeeeeeeeeeee ["user00", "super user", "supreme user"] myjs.js:48 geeeeeeeeeeeeeeeeeeeeeeeeee supreme user myjs.js:49 eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee myjs.js:80 guppppppppppppppppppuser00,super user,supreme user myjs.js:84 success [Object, Object, Object] myjs.js:85 55555555555555555555["sample_vh.com"] myjs.js:55 ccccccccccccccccccccccsupreme user myjs.js:60 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa["sample_vh.com"] myjs.js:62 rrrrrrrrrrrrrrrsample_vh.com myjs.js:67 ooooooooooooooooooooooooooo Object {supreme user: Array[1]} myjs.js:69 Uncaught SyntaxError: Unexpected token o myjs.js:70 55555555555555555555["veera_tls.com","v_v.com","sample_vh.com"] myjs.js:55 ccccccccccccccccccccccsupreme user myjs.js:60 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa["veera_tls.com","v_v.com","sample_vh.com"] 

myjs.js:62 rrrrrrrrrrrrrrrveera_tls.com myjs.js:67 rrrrrrrrrrrrrrrv_v.com myjs.js:67 rrrrrrrrrrrrrrrsample_vh.com myjs.js:67 ooooooooooooooooooooooooooo Object {supreme user: Array[3]} myjs.js:69 Uncaught SyntaxError: Unexpected token o myjs.js:70 55555555555555555555[]

I am not able to understand your code.

Just create the array and pass that array to JSON.stringify to JSONify it.

var arr = [1,2,3,4,5];
JSON.stringify(arr); // "[1,2,3,4,5]"
    $.ajax({
    url: 'get_group_list',
    type: 'POST',
    async:false,
    dataType:"json",
    success: function (data) {
        groupnamess=data;

    for(var i in groupnamess)
    {
     grup[i]=groupnamess[i];
     userss.push({
            label:groupnamess[i],
            value:groupnamess[i]
          });
    grupss.push(groupnamess[i]);
    }
    for(var i in grupss)

    {

         $.ajax({
            url: 'get_user_list',
            type: 'POST',
            async:false,
            dataType:"json",
            data:{'name':groupnamess[i]},   
            success: function (data) {
                if(data!='[]')
                {

                    var group=groupnamess[i];

                    grouplist[group]=new Array();

                    var usrs=data;
                    for(var j in usrs)
                    {
                        grouplist[group].push(usrs[j]);

                    }


                }
            },
            error:function(XMLHttpRequest, textStatus, errorThrown)
            {
                console.log('error', errorThrown);
            }
        }); 

    }   

    users=userss;
    console.log('successddddddd', users);
    },
    error:function(XMLHttpRequest, textStatus, errorThrown)
    {
     console.log('error', errorThrown);
    }
});

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM