Как конвертировать JSON Object в массив Javascript

0

Связанный с этим вопросом, и этот, также, я хотел бы знать, как сделать то же самое, но с другим типом 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.

Есть идеи? благодаря

Теги:
arrays

2 ответа

6
Лучший ответ

Рабочий 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
    });    
});
  • 0
    Было очень приятно помогать вам FlorentP! :)
1

если вы хотите их преобразовать, с ключом. Я предлагаю что-то вроде ниже

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"
}
  • 0
    Спасибо, как я могу получить значение uid таким образом? mapped[0] вернет весь объект, но если мне нужен только uid, например? Будет ли mapped[0]['uid'] работать на ваш взгляд?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню