簡體   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