2012-11-08 102 views
0

我有以下形成良好的JSON字符串解析以及形成JSON字符串

{"paymentType": 1, "payer": john doe, "currency": 1, "receiptId": 4, "amount": [{"invoiceFeeId": 12080, "amountPaid": 120},{"invoiceFeeId": 12079, "amountPaid": 200},{"invoiceFeeId": 12078, "amountPaid": 500}] } 

但是我似乎無法submiting這樣的形式之前將其解析爲的javascrip opject。

var paymentFormSearialized = '{"paymentType": '+$("#paymentForm #paymentType").val()+', "payer": '+$("#paymentForm #payer").val()+ 
           ', "currency": '+$("#paymentForm #currency").val()+', "receiptId": '+$("#receiptId").val()+', "amount": ['+amountsasjson+'] }'; 

    $.post("<c:url value='/payments/create/${invoiceId}'/>", $.parseJSON(paymentFormSearialized), function(data){ 
     alert(data); 
    }); 

POST數據必須是JSON對象,絕望的我甚至使用eval嘗試()。請幫助,也許我沒有看到我的字符串中有些東西。

回答

2

這是不正確的,你有沒有引用的字符串。此外,爲什麼你需要製作一個笨拙的字符串並將其解析爲一個對象,何時可以創建一個對象?

var data = { 
    paymentType: +$("#paymentForm #paymentType").val(), 
    payer: $("#paymentForm #payer").val(), 
    currency: $("#paymentForm #currency").val(), 
    receiptId: $("#receiptId").val(), 
    amount: [{"invoiceFeeId": 12080, "amountPaid": 120},{"invoiceFeeId": 12079, "amountPaid": 200},{"invoiceFeeId": 12078, "amountPaid": 500}] 
}; 
+0

更簡潔的方法和更少的錯誤傾向。謝啦 ! – Binaryrespawn