Muszę przekonwertować ciąg obiektu JSON na tablicę JavaScript.
To mój obiekt JSON:
{"2013-01-21":1,"2013-01-22":7}
I chcę mieć:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['2013-01-21', 1],
['2013-01-22', 7]
]);
Jak mogę to osiągnąć?
javascript
json
user1960311
źródło
źródło
string.split(',')
Odpowiedzi:
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/
źródło
Jeśli masz dobrze sformułowany ciąg JSON, powinieneś być w stanie to zrobić
var as = JSON.parse(jstring);
Robię to cały czas podczas przesyłania tablic przez AJAX.
źródło
Załóżmy, że masz:
var j = {0: "1", 1: "2", 2: "3", 3: "4"};
Możesz uzyskać wartości za pomocą (obsługiwane w praktycznie wszystkich wersjach przeglądarek):
Object.keys(j).map(function(_) { return j[_]; })
lub po prostu:
Object.values(j)
Wynik:
["1", "2", "3", "4"]
źródło
function json2array(json){ var result = []; var keys = Object.keys(json); keys.forEach(function(key){ result.push(json[key]); }); return result; }
Zobacz pełne wyjaśnienie: http://book.mixu.net/node/ch5.html
źródło
To rozwiąże problem:
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);
Lub używając metody Object.entries () :
console.log(Object.entries(json_data));
W obu przypadkach wynik będzie następujący:
/* output: [['2013-01-21', 1], ['2013-01-22', 7]] */
źródło
W ten sposób możesz wstawiać elementy obiektów do tablicy
let obj = { '1st': { name: 'stackoverflow' }, '2nd': { name: 'stackexchange' } }; let wholeArray = Object.keys(obj).map(key => obj[key]); console.log(wholeArray);
źródło
To takie proste!
var json_data = {"2013-01-21":1,"2013-01-22":7}; var result = [json_data]; console.log(result);
źródło