Reputation: 693
Linked to this question and this one also, I would like to know how to do the exact same thing but with a different type of JSON :
Here my JSON Object :
var myDb = {
"04c85ccab52880": {
"name": "name1",
"firstname": "fname1",
"societe": "soc1"
},
"04c95ccab52880": {
"name": "name2",
"firstname": "fname2",
"societe": "soc2"
},
"048574220e2a80": {
"name": "name3",
"firstname": "fname3",
"societe": "soc3"
}
};
My problem is that my JSON is different from their JSON, actually I have an array of array in mine. So how to convert this into a Javascript array ?
var arr = [];
$.each( myDb, function( key, value ) {
arr.push( value );
});
console.log(user_list);
This kind of script seems to return my 3 different objects but where are my uid from JSON ? How can I get them ? Because now my keys are 0,1,2 and no longer my uid.
Any ideas ? Thanks
Upvotes: 0
Views: 10105
Reputation: 4144
if you want to convert them, with key. I suggest something like below
var mapped = Object.keys( myDb ).map(function( uid ){
return (myDb[uid ].uid = uid ) && myDb[uid ];
});
for value in your array look like, example mapped[0]
has value :
{
"name": "name1",
"firstname": "fname1",
"societe": "soc1",
"uid": "04c85ccab52880"
}
Upvotes: 1
Reputation: 10161
A working JSFIDDLE
JS code:
//var arr = [];
var myDb = {
"04c85ccab52880": {
"name": "name1",
"firstname": "fname1",
"societe": "soc1"
},
"04c95ccab52880": {
"name": "name2",
"firstname": "fname2",
"societe": "soc2"
},
"048574220e2a80": {
"name": "name3",
"firstname": "fname3",
"societe": "soc3"
}
};
$.each( myDb, function( key, value ) {
//arr.push( value );
console.log("key => "+key);//will output: 04c85ccab52880 and all such
$.each( value, function( ky, val ) {
console.log('ky => '+ky);//will output: name, firstname, societe
console.log('val => '+val);//will output: name1, fname1, soc1
});
});
Upvotes: 6