Hoe JSON-object converteren naar JavaScript-array?

Ik moet de JSON-objectstring converteren naar een JavaScript-array.

Dit mijn JSON-object:

{"2013-01-21":1,"2013-01-22":7}

En ik wil hebben:

var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
    ['2013-01-21', 1],
    ['2013-01-22', 7]
]);

Hoe kan ik dit bereiken?


Antwoord 1, autoriteit 100%

var json_data = {"2013-01-21":1,"2013-01-22":7};
var result = [];
for(var i in json_data)
    result.push([i, json_data [i]]);
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows(result);

http://jsfiddle.net/MV5rj/


Antwoord 2, autoriteit 65%

Als je een goed gevormde JSON-tekenreeks hebt, zou je dat moeten kunnen

var as = JSON.parse(jstring);

Ik doe dit altijd als ik arrays overzet via AJAX.


Antwoord 3, autoriteit 44%

Stel dat je:

var j = {0: "1", 1: "2", 2: "3", 3: "4"};

Je zou de waarden kunnen krijgen met (ondersteund in praktisch alle browserversies):

Object.keys(j).map(function(_) { return j[_]; })

of gewoon:

Object.values(j)

Uitvoer:

["1", "2", "3", "4"]

Antwoord 4, autoriteit 26%

function json2array(json){
    var result = [];
    var keys = Object.keys(json);
    keys.forEach(function(key){
        result.push(json[key]);
    });
    return result;
}

Zie deze volledige uitleg: http://book.mixu.net/node/ch5.html


Antwoord 5, autoriteit 16%

Dit lost het probleem op:

const json_data = {"2013-01-21":1,"2013-01-22":7};
const arr = Object.keys(json_data).map((key) => [key, json_data[key]]);
console.log(arr);

Of met behulp van Object.entries()methode:

console.log(Object.entries(json_data));

In beide gevallen zal de uitvoer zijn:

/* output: 
[['2013-01-21', 1], ['2013-01-22', 7]]
*/

Antwoord 6, autoriteit 3%

U kunt objectitems als volgt in een array invoegen

let obj = {
  '1st': {
    name: 'stackoverflow'
  },
  '2nd': {
    name: 'stackexchange'
  }
};
 let wholeArray = Object.keys(obj).map(key => obj[key]);
 console.log(wholeArray);

Antwoord 7

Zo simpel als dit!

var json_data = {"2013-01-21":1,"2013-01-22":7};
var result = [json_data];
console.log(result);

Other episodes