2014-02-25 55 views
0

我想作一個JSON對象如下:使物體到數組

{ 
     "PROMO": { 
      "ID": 1, 
      "NAME": "PROMO ONE", 
      "BUNDLES": { 
       "0": { 
        "BUNDLE": { 
         "BUNDLE_ID": 1, 
         "BUNDLE_NAME": "BUNDLE ONE" 
        }, 
        "ARTICLE": { 
         "ARTICLE_IDS": "550,398,475" 
        } 
       }, 
       "1": { 
        "BUNDLE": { 
         "BUNDLE_ID": 1, 
         "BUNDLE_NAME": "BUNDLE ONE"      
        }, 
        "ARTICLE": { 
         "ARTICLE_IDS": "125,250,323" 
        } 
       } 
      } 
     } 
    } 

我想做的事情,結合BUNDLEARTICLE對象,然後推入BUNDLES陣列什麼。我嘗試了很多方法,但沒有成功結合兩個對象。

舉例來說,我嘗試以下操作:

var BUNDLES = []; 
var BUNDLE = {}; 
var ARTICLE = {}; 

BUNDLE.BUNDLE_ID = 1; 
BUNDLE.BUNDLE_NAME = "BUNDLE ONE"; 
ARTICLE.ARTICLE_IDS = "550,398,475"; 

// here, I want to combine ARTICLE and BUNDLE then push into array 
BUNDLES.push(BUNDLE) 
+2

那你試試?有什麼問題? – Xotic750

+2

預期輸出是什麼? – elclanrs

+0

與上面的JSON對象一樣,我手動創建了JSON對象。 –

回答

0

這將做雅。可能有一個更好的方式,但這是你想要的,我希望。

http://jsfiddle.net/558BN/

var json = { 
     "PROMO": { 
      "ID": 1, 
      "NAME": "PROMO ONE", 
      "BUNDLES": { 
       "0": { 
        "BUNDLE": { 
         "BUNDLE_ID": 1, 
         "BUNDLE_NAME": "BUNDLE ONE" 
        }, 
        "ARTICLE": { 
         "ARTICLE_IDS": "550,398,475" 
        } 
       }, 
       "1": { 
        "BUNDLE": { 
         "BUNDLE_ID": 1, 
         "BUNDLE_NAME": "BUNDLE ONE"      
        }, 
        "ARTICLE": { 
         "ARTICLE_IDS": "125,250,323" 
        } 
       } 
      } 
     } 
    } 

var array = []; 
for(var i in json.PROMO.BUNDLES){ 
    var obj = {}; 
    for(var j in json.PROMO.BUNDLES[i]){ 
     obj[j] = json.PROMO.BUNDLES[i][j] 
     //console.log(j + " " + obj[j]); 
    } 
    array.push(obj); 
} 
json.PROMO.BUNDLES = array; 
console.log(json.PROMO.BUNDLES); 
+1

多數民衆贊成它,謝謝spassvogel –

+0

不客氣:)不要忘記標記答案。 – spassvogel