Связанный с этим вопросом, и этот, также, я хотел бы знать, как сделать то же самое, но с другим типом JSON:
Здесь мой объект JSON:
var myDb = {
"04c85ccab52880": {
"name": "name1",
"firstname": "fname1",
"societe": "soc1"
},
"04c95ccab52880": {
"name": "name2",
"firstname": "fname2",
"societe": "soc2"
},
"048574220e2a80": {
"name": "name3",
"firstname": "fname3",
"societe": "soc3"
}
};
Моя проблема в том, что мой JSON отличается от JSON, на самом деле у меня есть массив массивов в моем. Итак, как преобразовать это в массив Javascript?
var arr = [];
$.each( myDb, function( key, value ) {
arr.push( value );
});
console.log(user_list);
Этот вид скрипта, кажется, возвращает мои 3 разных объекта, но где мой uid от JSON? Как я могу их получить? Потому что теперь мои ключи - 0,1,2 и больше не мой uid.
Есть идеи? благодаря
Рабочий JSFIDDLE
Код JS:
//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
});
});
если вы хотите их преобразовать, с ключом. Я предлагаю что-то вроде ниже
var mapped = Object.keys( myDb ).map(function( uid ){
return (myDb[uid ].uid = uid ) && myDb[uid ];
});
для значения в вашем массиве выглядит, например, mapped[0]
имеет значение:
{
"name": "name1",
"firstname": "fname1",
"societe": "soc1",
"uid": "04c85ccab52880"
}
mapped[0]
вернет весь объект, но если мне нужен только uid, например? Будет ли mapped[0]['uid']
работать на ваш взгляд?