繁体   English   中英

在现有的 JSON 数组中添加 Javascript Object

[英]Adding Javascript Object inside existing JSON Array

抱歉,如果这看起来很明显,但我已经迷失了几个小时。

我正在尝试创建一个 javascript object 并将其传递给 PHP 页面使用 JQuery's.Z2705A83A39A0659EDA5264。

JS object 看起来像:

let transactions = {};
let counter = 0;
($.each loop) {
    transactions[counter] = {
        "code": code,
        "agency_number": agency_number,
        "agency_code": agency_code
    };
    counter++;
}

然后我需要将它与另一个字段一起添加到 JSON 数组

let formData =  [{}];
    formData.push({name: 'page', value: aPage});
    formData.push({name: "transactions", value: JSON.stringify(transactions)});

AJAX 调用如下:

let ajax_call=$.ajax({
                datatype: "json",
                method: "POST",
                url: "theURL",
                data: formData,
                timeout: 15000,
                async: true
            });
            ajax_call.done(function( data, textStatus, jqXHR ) {
               ... blah ...

在 JSON.stringify 中包装事务似乎不起作用。 在 PHP 端,事务的 POST 值如下所示:

"{0:{CODE:300,AGENCY_NUMBER:20,AGENCY_CODE:50}}"

没有滴答声,这不允许我使用 json_decode。 它按预期输出“语法错误”。

将其作为事务传递,没有 JSON.stringify 会产生结果:

formData.push({name: "transactions", value: transactions});

=

"[OBJECT OBJECT]"

这是一个字符串表示,而不是实际的 object 可以使用。

到目前为止,我没有对 POST 值做任何事情。 这就是 PHP 页面接收它们的方式。

任何帮助将不胜感激。

谢谢!

编辑 - 这里的代码实际上没有任何问题。 我限制引号以及其他特殊字符在 IIS 中访问 web 服务器。 这就是为什么它在没有他们的情况下得以实现。 一切都很好,我只是愚蠢。

否则谢谢大家的帮助。

JQuery ajax.data 可以接受常规的 JS 对象。 您不必创建名称:值对和对任何内容进行字符串化。

这应该会更好:

const formData = {
    page: aPage,
    transactions: []
};

($.each loop) {
    formData.transactions.push({
        "code": code,
        "agency_number": agency_number,
        "agency_code": agency_code
    })
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM