簡體   English   中英

如何將JSON對象轉換為Javascript數組

[英]How to convert JSON Object into Javascript array

聯系到這個問題,並且這其中也 ,我想知道如何做同樣的事情,但有一個不同類型的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個不同的對象,但是JSON中的uid在哪里? 我怎樣才能得到它們? 因為現在我的密鑰是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]具有value:

{
    "name": "name1",
    "firstname": "fname1",
    "societe": "soc1",
    "uid": "04c85ccab52880"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM