Мне нужно преобразовать строку объекта JSON в массив JavaScript.
Это мой объект JSON:
{"2013-01-21":1,"2013-01-22":7}
И я хочу иметь:
var data = new google.visualization.DataTable();
data.addColumn('string', 'Topping');
data.addColumn('number', 'Slices');
data.addRows([
['2013-01-21', 1],
['2013-01-22', 7]
]);
Как я могу этого добиться?
javascript
json
user1960311
источник
источник
string.split(',')
Ответы:
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/
источник
Если у вас есть правильно сформированная строка JSON, вы сможете сделать
var as = JSON.parse(jstring);
Я все время так делаю при передаче массивов через AJAX.
источник
Предположим, у вас есть:
var j = {0: "1", 1: "2", 2: "3", 3: "4"};
Вы можете получить значения с помощью (поддерживается практически во всех версиях браузеров):
Object.keys(j).map(function(_) { return j[_]; })
или просто:
Object.values(j)
Вывод:
["1", "2", "3", "4"]
источник
function json2array(json){ var result = []; var keys = Object.keys(json); keys.forEach(function(key){ result.push(json[key]); }); return result; }
См. Это полное объяснение: http://book.mixu.net/node/ch5.html
источник
Это решит проблему:
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);
Или используя метод Object.entries () :
console.log(Object.entries(json_data));
В обоих случаях вывод будет:
/* output: [['2013-01-21', 1], ['2013-01-22', 7]] */
источник
Вы можете вставлять объекты в массив как это
let obj = { '1st': { name: 'stackoverflow' }, '2nd': { name: 'stackexchange' } }; let wholeArray = Object.keys(obj).map(key => obj[key]); console.log(wholeArray);
источник
Вот так просто!
var json_data = {"2013-01-21":1,"2013-01-22":7}; var result = [json_data]; console.log(result);
источник