Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON对象转换为JavaScript数组?_Javascript_Json - Fatal编程技术网

如何将JSON对象转换为JavaScript数组?

如何将JSON对象转换为JavaScript数组?,javascript,json,Javascript,Json,我需要将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

我需要将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]
]);
我怎样才能做到这一点

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


请参阅完整的解释:

如果您有格式良好的JSON字符串,您应该能够

var as = JSON.parse(jstring);
在通过AJAX传输阵列时,我总是这样做。

假设您有:

var j = {0: "1", 1: "2", 2: "3", 3: "4"};
您可以使用(几乎所有浏览器版本都支持)获取值:

或者简单地说:

Object.values(j)
输出:

["1", "2", "3", "4"]
就这么简单

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

这将解决问题:

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]]
*/

可以将对象项插入数组,如下所示

让obj={
“一号”:{
名称:“stackoverflow”
},
第二名:{
名称:“stackexchange”
}
};
让wholeArray=Object.keys(obj.map)(key=>obj[key]);

控制台日志(wholeArray)作弊->
字符串。拆分(',')
@adeneo他想要数组中的数组,用你的方法它只会是一个数组。我想这样:2013-01-21=>1 2013-01-22==>7(像一个哈希表)@user1960311这就是你拥有的now@salexch您是JSON.parse()的天才….+1。在这一点上,它有广泛的浏览器支持:这似乎返回一个对象,但不是数组。对吗?它将返回您序列化的任何对象或对象集合。我认为这比actepted更好。这不会保留键。这使得数组中有一个对象(json数据对象)。@Shivam,发现它很有用吗?谁读了这个。。。改用!记住Object.values()不是IE,IE不支持任何东西。什么与它兼容,什么与它不兼容真的很重要吗?太好了。但不适用于嵌套对象。var数据={“2013-01-21”:1,“2013-01-22”:7,“ab”:{“x”:1};返回[[“2013-01-21”,1],“2013-01-22”,7],“ab”,{“x”:1}]]
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);
console.log(Object.entries(json_data));
/* output: 
[['2013-01-21', 1], ['2013-01-22', 7]]
*/