javascript - 如何在 JavaScript 中将序列化数组值转换为 JSON

标签 javascript arrays json serialization serializearray

我有这样的序列化数组

rate_3=26&rate_8=67&rate_12=98 等等...,

现在我需要将此数组更改为 json 类型

    {
        "ID": "3",
        "Rate": "26"
    },
    {
        "ID": "8",
        "Rate": "67"
    },
    {
        "ID": "3",
        "Rate": "26"
   } .., 
   etc

所以我尝试了这样的方法,但它不起作用......请有人帮助我。

        var o = {};
        var a = table.$('input, select').serialize();
        $.each(a, function() 
        {
        if (o[this.name] !== undefined) 
            {
            if (!o[this.name].push) 
                {
                    o[this.name] = [o[this.name]];
                }
                o[this.name].push(this.value || '');
            }
        else 
            {
                o[this.name] = this.value || '';
            }
        });
        return o;

我正在使用数据表,所以我只需要为使用此行的数据表序列化数组

var a = table.$('input, select').serialize();

即使我也尝试过使用 json2.js,但是当我使用 json2.js 时它会强制页面提交

var data_2 = JSON.stringify(block_form.serializeArray());

最佳答案

简单的方法就是map在正则表达式匹配的结果上,将新对象推送到结果数组中:

var out = str.match(/\d+=\d+/g).map(function (el) {
    var arr = el.split('=');
    return { id: arr[0], rate: arr[1] };
});

DEMO

使用 JSON.stringify(out) 将输出数组转换为 JSON。

关于javascript - 如何在 JavaScript 中将序列化数组值转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898573/

相关文章:

javascript - 在javascript中动态设置对象键

javascript - jQuery:实时计算单词

c++ - 在单个阵列上的 opencl 中处理工作组及其大小

从 JSON 文件中提取的 JavaScript 文件不再有效

javascript - 如何通过 jQuery 的 .ajax() 方法在 GET 请求中发送包含斜杠的参数?

javascript - 根据用户输入修改雷达 Chart.js 中的值

javascript - Bootstrap - 键盘无法在动态生成的文本框软搜索菜单上工作

javascript - 将 JS 文件加载到变量中

arrays - 移动窗口的最小值/最大值能否在 O(N) 内实现?

java - Spring aop、cglib增强类丢失通用信息