2015-10-29 50 views
1

我有這個JSON.stringify(數組)結果:[「id:1x,price:150」,「id:2x,price:200」],我必須將其轉換爲一個類似的JSON格式(它會被髮送到PHP): [{ 「ID」: 「1×」, 「價格」:150 }, { 「ID」: 「2×」, 「價格「:200 }]將javascript數組轉換爲特定的json格式

請幫忙。

回答

2

您可以將數據結構轉換爲使用JSON.stringify之前,比如你可以將數據轉換成像這樣的對象的列表:

var strItems = ["id:1x,price:150", "id:2x,price:200"]; 
var objItems = []; 

for (var i = 0; i < strItems.length; i++) { 
    var pairs = strItems[i].split(","); 
    objItems.push({ 
     id: pairs[0].split(':')[1], 
     price: parseInt(pairs[1].split(':')[1]) 
     }); 
} 

在致電JSON.stringify得到的結果你後:

var json = JSON.stringify(objItems); 
console.log(json); 
+0

完美,非常感謝.. – Iram

0

JSON.stringify(陣列)只做上一層,但你可以改變的字符串化功能,爲使用此功能通過JVE999書面多層上工作this post

(function(){ 
    // Convert array to object 
    var convArrToObj = function(array){ 
     var thisEleObj = new Object(); 
     if(typeof array == "object"){ 
      for(var i in array){ 
       var thisEle = convArrToObj(array[i]); 
       thisEleObj[i] = thisEle; 
      } 
     }else { 
      thisEleObj = array; 
     } 
     return thisEleObj; 
    }; 
    var oldJSONStringify = JSON.stringify; 
    JSON.stringify = function(input){ 
     if(oldJSONStringify(input) == '[]') 
      return oldJSONStringify(convArrToObj(input)); 
     else 
      return oldJSONStringify(input); 
    }; 
})(); 

一旦聲明這一點,那麼你可以調用JSON.stringify(陣列)