Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/410.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

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
Javascript 如何仅从二维JSON获取值?_Javascript_Json - Fatal编程技术网

Javascript 如何仅从二维JSON获取值?

Javascript 如何仅从二维JSON获取值?,javascript,json,Javascript,Json,我需要将JSON转换为数组。我试着用地图。它适用于简单的JSON,但不适用于二维JSON <script> var json = `{ "foo": 1, "bar": 2, "baz": 3 }`; var obj = JSON.parse(json); var values = Object.keys(obj).map(function (key) { return obj[key]; }); alert("This Works " + JSON.stringify(value

我需要将JSON转换为数组。我试着用地图。它适用于简单的JSON,但不适用于二维JSON

<script>

var json = `{ "foo": 1, "bar": 2, "baz": 3 }`;
var obj = JSON.parse(json);
var values = Object.keys(obj).map(function (key) { return obj[key]; });
alert("This Works " + JSON.stringify(values)); 

var json2 = `[{ "foo": 1, "bar": 2, "baz": 3 },{ "foo": 1, "bar": 2, "baz": 3 },{ "foo": 1, "bar": 2, "baz": 3 }]`;
var obj2 = JSON.parse(json2);
var values2 = Object.keys(obj2).map(function (key) { return obj2[key]; });
alert("This Doesn't Work " + JSON.stringify(values2));

</script> 

这是一个测试用例。我做错了什么

第二个对象是数组,因此需要按原样使用它

另一种方法是使用函数reduce获取对象,并使用函数concat连接值

建议使用函数Object.values来避免映射过程

var json=`{foo:1,bar:2,baz:3}`; var obj=JSON.parsejson; var values=Object.keysobj.mapfunctionkey{ 返回obj[键]; }; console.logThis+JSON.stringifyvalues; var json2=`[{foo:1,bar:2,baz:3},{foo:1,bar:2,baz:3},{foo:1,bar:2,baz:3}]`, obj2=JSON.parsejson2, values2=obj2.reducea,c=>[…a,Object.valuesc];
console.logThis现在可以+JSON.stringifyvalues2 首先必须使用map函数处理外部数组,然后必须使用Object.values,最后必须使用flat才能生成一维数组

var newArray = obj2.map(function (element) { return Object.values(element); }).flat();

这不是JSON,这是一个充满对象的数组。你认为你得到的是键,但实际上,你得到的是索引。它们是。。。钥匙:耸耸肩:作为答案之一,您必须将其视为一个数组。因此,我不认为你要寻找的最终方法是使用“值”数组,而不是实际的对象数组。谢谢。但这将返回一个一维数组[1,2,3,1,2,3,1,2,3]。我怎样才能保持二维的性质?预期结果:[{1,2,3},{1,2,3},{1,2,3}]@john这不是一个有效的js对象。我是说2d数组。[[1,2,3],[1,2,3],[1,2,3]]