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