簡體   English   中英

如何在Javascript中將JSON轉換為數組

[英]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,則可以簡化解決方案。

在這里,您可以找到一個解決方案(使用jQueryhttps://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]
  ]
}]

在這里,您可以找到一個解決方案(使用香草JavaScripthttps://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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM