2014-01-15 52 views
-1

我有此JSON其中的值會動態在JavaScript中被傳遞,我怎樣才能在javascript中構建這個json格式?

{ 
    "User": { 
    "-xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance", 
    "memNum": "70000211981", 
    "orderslist": [ 
     { 
     "orderid": "5119534", 
     "ordersource": "ONLINE", 
     "transactiondttm": "2014-01-09" 
     }, 
     { 
     "orderid": "5119534", 
     "ordersource": "STORE", 
     "transactiondttm": "2014-01-09" 
     } 
    ] 
    } 
} 

我試圖用這個功能來構建JSON,但它似乎沒有工作,

function addOrder(req, orderId, orderSource, transactiondtm) { 
    req.User.orderslist.orderid.push(orderId); 
    req.User.orderslist.ordersource.push(orderSource); 
    req.User.orderslist.transactiondtm.push(transactiondtm); 
} 

任何建議。

+0

工作都在控制檯得到什麼錯誤? – Andy

+8

10.5k代表,仍然描述爲「它似乎不工作」的問題... ... – Kippie

+0

請顯示你如何調用該功能。 (第一個參數是一個已經有'User'屬性的對象,它本身就是一個帶'orderslist'數組的對象?) – nnnnnn

回答

1

像這樣的東西應該工作。

function addOrder(req, orderId, orderSource, transactiondtm) { 
    req.User.orderslist.push({ 
     "orderid": orderId, 
     "ordersource": orderSource, 
     "transactiondtm": transactiondtm 
    }); 
} 
1

orderslist的元素是對象,而不是數組,所以你不能push到他們。您必須將它們構建爲對象,然後將其推到orderslist陣列上。

function addOrder(req, orderId, orderSource, transactiondtm) { 
    req.User.orderslist.push({ orderid: orderId, 
           ordersource: orderSource, 
           transactiondtm: transactiondtm }); 
} 
0

Javascript對象可以像數組一樣處理。 這樣你可以創建動態成員。

user = {"orderList":[]}; 

for(var i = 0; i<5; i++){ 
    user.orderList[i] = {}; 
    user.orderList[i]["orderId"] = i; 
    user.orderList[i]["orderSource"] = "STORE"; 
} 

alert(user.orderList[0].orderSource); 
//Shows "STORE" 

你可以看到這裏的代碼http://jsfiddle.net/wmgE6/