将具有多个字段的表单数据转换为 JSON Jquery Javascript

Posted

技术标签:

【中文标题】将具有多个字段的表单数据转换为 JSON Jquery Javascript【英文标题】:Convert Form Data with Multiple Fields to JSON Jquery Javascript 【发布时间】:2021-11-22 21:34:12 【问题描述】:

我在转换通过 ajax 的表单数据发布方法时遇到问题。我想将它转换为 JSON,我将在控制器中对其进行解码。将使用 post 方法通过 ajax 传递。

Array
(
 [start_date] => 2021-10-01
 [end_date] => 2021-11-01
 [select_shop2] => 
 [checkbox_time] => on
 [start_time] => 00:30
 [end_time] => 00:30
 [todaydate] => 10/01/2021
 [batch_promo_type] => 2
 [batch_promo_rate] => 1
 [batch_promo_price] => 5
 [batch_promo_stock_qty] => 1
 [batch_purch_limit_select] => 1
 [batch_purch_limit] => 1
 [product_id] => Array
     (
        [0] => 3c1da2d798c14921b672373ba2757dd8
        [1] => fe38680795474c518dc49ba7a5c9a84f
        [2] => e140459347654876a12dbd87f84d1073
        [3] => bff038e92b414fde8fe16a420768bf2f
        [4] => fa0cb79ef920499aa918dedb7e02e225
        [5] => fdf43ab162bc4fd0bc9363033899e954
        [6] => 9403284b1eb84f5f9ef9f28bfce8d486
        [7] => 4640657c0b4a4fd9bbb139c1ae57eaee
        [8] => 29a51f916acf4ffd825f4a28667edbf5
        [9] => 343c2f955e9c4034be834378e2bdc672
    )

)

我尝试使用 JSON.stringify 但似乎不起作用

var form = $('#form_promoprod');
var form_data = new FormData(form[0]);
console.log(JSON.stringify(form_data));

     $.ajax(
            type: form[0].method,
            url: base_url+'promotion/Main_promotion/mc_update_promotion',
            data: form_data,
            contentType: false,   
            cache: false,      
            processData:false,

【问题讨论】:

尝试将 FormData 实例序列化为 JSON 是没有意义的。请改用api.jquery.com/serializearray。 会使用post方法通过ajax传递 【参考方案1】:

FormData 不仅仅是一个对象。

你必须使用 forEach 循环:

const form = document.querySelector('#form_promoprod');
const formData = new FormData(form);
const object = ;
formData.forEach((value, key) => object[key] = value);
const json = JSON.stringify(object);

【讨论】:

以上是关于将具有多个字段的表单数据转换为 JSON Jquery Javascript的主要内容,如果未能解决你的问题,请参考以下文章

Jolt 将多个对象转换为具有新字段名称的数组

将 HTML 表格的表单输入字段转换为 JSON

创建PHP动态多字段的JSON格式

如何将具有重复字段值的表格数据转换为层次结构的 JSON?

将具有 JSON 字段的选择结果转换为 JSON,并将该数据与 JSON_VALUE() 一起使用

将嵌套的 json 导入为具有多个嵌套的表