如何将JSON对象转换为Javascript数组

How to convert JSON Object into Javascript array

本文关键字:Javascript 数组 转换 对象 JSON      更新时间:2023-09-26

链接到这个问题和这个问题,我想知道如何做完全相同的事情,但使用不同类型的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在哪里?我怎样才能得到它们呢?因为现在我的key是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
    });    
});

如果您想转换它们,使用key。我建议如下

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"
}