繁体   English   中英

如何将此 JSON 字符串更改为特定格式?

[英]How do I change this JSON string to a specific format?

我正在将一个字符串从视图传递到 controller。 这是我的 ajax 代码

    var formData = $('#spec-wip-form, #platingspec-form').serializeArray();
    var platingId = @Model.PlatingId;

    var form = JSON.stringify(formData);
    $.ajax({
        url: "/Specifications/Edit",
        type: 'PUT',
        data: { form, cleaningProcess, platingId },
        success: function () {
            onUpdated();
        }
    });

我得到的 JSON 格式看起来像这样

"[{\"name\":\"PlatingId\",\"value\":\"1\"},{\"name\":\"DivisionId\",\"value\":\"79\"}]

我希望它看起来像这样

"[{\"PlatingId\":\"1\"},{\"DivisionId\":\"79\"}]

我之前已经尝试过了,但是

var formData = $('#spec-wip-form, #platingspec-form').serialize();

我明白了

formData: PlatingId=1&DivisionId=79&

我该怎么做?

感谢@SebastionSimon 的更正。 此外,这不是双重字符串化以匹配您的预期结果。 您始终可以通过 JSON.stringify 再次运行它以匹配。

 let json = '[{"name":"PlatingId","value":"1"},{"name":"DivisionId","value":"79"}]'; let newjson = JSON.stringify( JSON.parse(json).map( ({name, value}) => ({[name]: value}) )) console.log(newjson)

您可以使用 Object.fromEntries() 创建单个 object。

 const formData = [{"name":"PlatingId","value":"1"},{"name":"DivisionId","value":"79"}]; const res = Object.fromEntries(formData.map(({name,value})=> [name, value])); console.log(res)

暂无
暂无

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

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