2015-09-21 101 views
2

JSON數據樣本:轉換JSON數據,以二維數組

{ 
     "GroupA": "Array[37]", 
     "AGroupC": "Array[9]", 
     "GroupB": "Array[12]", 
     "GroupE": "Array[15]", 
     "GroupF": "Array[21]", 
     "GroupD": "Array[6]" 
     } 

我上面的數據,我需要將其轉換爲二維數組,但不知道該怎麼做。任何幫助將不勝感激。 所產生的應該是這樣的:

["GroupA", "GroupC", "AGroupB", "GroupE", "GroupF", "GroupD"] 
[37, 9, 12, 15, 21, 6] 

感謝。

+1

你想一個二維數組,或者只是2個陣列? –

+0

除了正則表達式之外,我還建議使用for-in。 – tcooc

+0

原始JSON有什麼不清楚......它是一個只包含指定的單個數字的數組嗎? –

回答

1

試試這個:

var dataJson = { 
 
    "GroupA": "Array[37]", 
 
    "AGroupC": "Array[9]", 
 
    "GroupB": "Array[12]", 
 
    "GroupE": "Array[15]", 
 
    "GroupF": "Array[21]", 
 
    "GroupD": "Array[6]" 
 
}; 
 

 
var groupArr = []; 
 
var arrayArr = []; 
 

 
for (var i in dataJson) { 
 
    if (dataJson.hasOwnProperty(i)) { 
 
    groupArr.push(i); 
 
    arrayArr.push(dataJson[i].match(/\d+/)[0]); 
 
    } 
 
} 
 
alert('groupArr: ' + JSON.stringify(groupArr)); 
 
alert('arrayArr: ' + JSON.stringify(arrayArr));

+1

非常感謝Rayon,這給了我一直在尋找的格式。 – EBamba

0

嘗試sometihing這樣的:

var dataJson = { 
      "GroupA": "Array[37]", 
      "AGroupC": "Array[9]", 
      "GroupB": "Array[12]", 
      "GroupE": "Array[15]", 
      "GroupF": "Array[21]", 
      "GroupD": "Array[6]" 
      } 


    var groupArr = []; 
    var arrayArr = []; 

    function dataArr() { 

     for (i = 0; i < (dataJson.length); i++) { 
      groupArr.push(dataJson[i+i]); 
      arrayArr.push(dataJson[i+1]); 
     } 
    } 

//output of each: 
//groupArr 
// ["GroupA", "GroupC", "AGroupB", "GroupE", "GroupF", "GroupD"] 
//arrayArr 
// ["Array[37]", "Array[9]", "Array[12]", "Array[15]", "Array[21]", "Array[6]"] 
+0

爲什麼要解析它? – Rayon

+0

@RayonDabre修復了,謝謝。 – Leo

0

從我可以告訴,這是你在問什麼。

function convertJSONto2D(json) { 
    var 2dArray = []; 
    var result = []; 

    2dArray.push(Object.keys(json)); 

    for(key in json) { 
     if (object.hasOwnProperty(key)) { 
      result.push(json[key].length); 
     } 
    } 

    2dArray.push(result); 

    return 2dArray; 
}