0

次の整形式の JSON 文字列があります

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

ただし、このようなフォームを送信する前に、JavaScript オブジェクトに解析できないようです。

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);
    }); 

投稿データは JSON オブジェクトでなければなりません。必死になって eval() を使ってみました。

助けてください、おそらく私の文字列に何かが表示されていませんか?

4

1 に答える 1

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}]
};
于 2012-11-08T18:09:21.893 に答える