Como converter o objecto JSON para uma lista de JavaScript

Preciso de converter a cadeia de objectos JSON para um array JavaScript.

Este é o meu objecto JSON:

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

e eu quero ter:

var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');

data.addRows([
    ['2013-01-21', 1],
    ['2013-01-22', 7]
]);
Como posso conseguir isso?

Author: BalusC, 2013-01-25

6 answers

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/

 37
Author: salexch, 2013-01-25 19:19:26

Se você tem uma corda JSON bem formada, você deve ser capaz de fazer

var as = JSON.parse(jstring);
Estou sempre a fazer isto quando transfiro arrays para AJAX.
 31
Author: aggaton, 2013-10-30 17:23:36
function json2array(json){
    var result = [];
    var keys = Object.keys(json);
    keys.forEach(function(key){
        result.push(json[key]);
    });
    return result;
}

Ver esta explicação completa: http://book.mixu.net/node/ch5.html

 10
Author: Roger Garzon Nieto, 2013-09-24 18:21:19

Suponha que tem:

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

Podes obter os valores com:

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

Resultado:

["1", "2", "3", "4"]
 6
Author: mvallebr, 2015-04-23 10:27:24

Isto vai resolver o problema:

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);

/* output: 
[ [ '2013-01-21', 1 ], [ '2013-01-22', 7 ] ]
*/
 2
Author: Rakesh Sharma, 2018-05-15 11:18:49
Tão simples como isto !
var json_data = {"2013-01-21":1,"2013-01-22":7};
var result = [json_data];
console.log(result);
 0
Author: Mr CCC, 2017-12-06 19:49:51