[英]How to convert JSON to Array in Javascript
我想將JSON轉換為Array,並通過以下方式返回值: console.log(data);
值是:
[{ "data" : [ [object] ] }, [{ "data" : [ [object] , [object] ] }
所以,我通過以下方式轉換為JSON:
console.log(JSON.stringify(data, null, " "));
值是:
[ { "data" : [ { "month" : 1, "name" : "Alex", "sum" : 20 } ] }, { "data" : [ { "month" : 2, "name" : "Zara", "sum" : 18 }, { "month" : 2, "name" : "Zara", "sum" : 19 } ] } ]
我想轉換為Array:
{ "data" : { [ 1, "Alex", 20 ] } }, { "data" : { [ 2, "Zara", 18 ] }, { [ 2, "Zara", 19 ] } }
如何轉換?
您可以簡單地嘗試以下方法:
var arr = Object.keys(obj).map(function(k) { return obj[k] });
預期輸出的語法不正確,因為您不能有沒有鍵值對的對象。
您可以將輸出作為
{
"data" : [ [ 1, "Alex", 20 ] ]
},
{
"data" : [[ 2, "Zara", 18 ] ,
[ 2, "Zara", 19 ] ]
}
這是考慮上述輸出的解決方案
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));
注意:如果可以在代碼中使用ES6,則可以簡化解決方案。
在這里,您可以找到一個解決方案(使用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>
您的預期輸出 無效 。
預期輸出應為
[{
"data": [1, "Alex", 20]
}, {
"data": [
[2, "Zara", 18],
[2, "Zara", 19]
]
}]
在這里,您可以找到一個解決方案(使用香草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));
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.