javascript - 解析格式正确的 json 字符串

标签 javascript jquery json

我有以下格式良好的 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);
    }); 

post 数据必须是 JSON 对象,出于绝望,我什至尝试使用 eval()。

请帮忙,也许我没有看到字符串中的某些内容?

最佳答案

格式不正确,您有未加引号的字符串。另外,当你可以创建一个对象时,为什么需要创建一个笨拙的字符串并将其解析为一个对象?

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

关于javascript - 解析格式正确的 json 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13295035/

相关文章:

javascript - 是否可以使用带有 display none 的转换来显示 block

Jquery div 在不应该隐藏的时候隐藏

sql - 检查 Postgres jsonb 是否包含以下值之一

java - Android:数据可用仍然出现错误 NullPointerException

python - 安装 twitter api 模块时无法加载 json 库

javascript - 需要 jQuery.Flot 图例格式方面的帮助

javascript - Angular 6 服务无法通过单元测试(NullInjectorError : No provider for HttpClient!)

javascript - 选择带有警报的多个单选按钮

javascript - 如何在 JavaScript 中只显示前两个对象?

javascript - 单击更改 masonry 列