[英]How to convert JSON to Array in Javascript
I want to convert JSON to Array and I return value by : console.log(data); 我想将JSON转换为Array,并通过以下方式返回值: console.log(data);
value is : 值是:
[{ "data" : [ [object] ] }, [{ "data" : [ [object] , [object] ] }
so, I converted to JSON by: 所以,我通过以下方式转换为JSON:
console.log(JSON.stringify(data, null, " "));
value is : 值是:
[ { "data" : [ { "month" : 1, "name" : "Alex", "sum" : 20 } ] }, { "data" : [ { "month" : 2, "name" : "Zara", "sum" : 18 }, { "month" : 2, "name" : "Zara", "sum" : 19 } ] } ]
I want convert to Array : 我想转换为Array:
{ "data" : { [ 1, "Alex", 20 ] } }, { "data" : { [ 2, "Zara", 18 ] }, { [ 2, "Zara", 19 ] } }
How to convert ? 如何转换?
您可以简单地尝试以下方法:
var arr = Object.keys(obj).map(function(k) { return obj[k] });
The syntax of your expected output is incorrect as you cant have object without key value pair. 预期输出的语法不正确,因为您不能有没有键值对的对象。
you can have your output as 您可以将输出作为
{
"data" : [ [ 1, "Alex", 20 ] ]
},
{
"data" : [[ 2, "Zara", 18 ] ,
[ 2, "Zara", 19 ] ]
}
here is the solution considering above output 这是考虑上述输出的解决方案
var inputArr = [ { "data" : [ { "month" : 1, "name" : "Alex", "sum" : 20 } ] }, { "data" : [ { "month" : 2, "name" : "Zara", "sum" : 18 }, { "month" : 2, "name" : "Zara", "sum" : 19 } ] } ]; inputArr.forEach(function(item){ for (var i=0; i< item.data.length; i++){ var myArr = []; myArr.push(item.data[i].month); myArr.push(item.data[i].name); myArr.push(item.data[i].sum); item.data[i] = myArr; } }) console.log(JSON.stringify(inputArr));
NOTE: Solution can be simplified if you are Ok to use ES6 in your code. 注意:如果可以在代码中使用ES6,则可以简化解决方案。
Here you go with a solution (with jQuery
) https://jsfiddle.net/mhhqj1nc/ 在这里,您可以找到一个解决方案(使用
jQuery
) https://jsfiddle.net/mhhqj1nc/
var data = [ { "data" : [ { "month" : 1, "name" : "Alex", "sum" : 20 } ] }, { "data" : [ { "month" : 2, "name" : "Zara", "sum" : 18 }, { "month" : 2, "name" : "Zara", "sum" : 19 } ] }]; var newdata = []; $.each(data, function(i, v){ newdata.push({data: []}); var temp = []; $.each(v.data, function(k, val){ var keys = Object.keys(v.data[k]); $.each(keys, function(j){ temp.push(v.data[k][keys[j]]); }); newdata[i].data.push(temp); temp = []; }); }); console.log(JSON.stringify(newdata));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Your expected output is invalid . 您的预期输出 无效 。
Expected output should be 预期输出应为
[{
"data": [1, "Alex", 20]
}, {
"data": [
[2, "Zara", 18],
[2, "Zara", 19]
]
}]
Here you go with a solution (with vanilla JavaScript
) https://jsfiddle.net/mhhqj1nc/1/ 在这里,您可以找到一个解决方案(使用香草
JavaScript
) https://jsfiddle.net/mhhqj1nc/1/
var data = [ { "data" : [ { "month" : 1, "name" : "Alex", "sum" : 20 } ] }, { "data" : [ { "month" : 2, "name" : "Zara", "sum" : 18 }, { "month" : 2, "name" : "Zara", "sum" : 19 } ] }]; var newdata = []; for(var i=0; i<data.length; i++){ newdata.push({data: []}); for(var j=0; j<data[i].data.length; j++){ var keys = Object.keys(data[i].data[j]); var temp = []; for(var k in keys){ temp.push(data[i].data[j][keys[k]]); } newdata[i].data.push(temp); } } console.log(JSON.stringify(newdata));
Hope this will help you. 希望这会帮助你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.