Javascript 将表单输入值转换为JSON

Javascript 将表单输入值转换为JSON,javascript,html,json,Javascript,Html,Json,我一直很难找到帮助我学习和理解JavaScript和JSON概念的信息 我已经创建了一个HTML文档,其中包含输入“to”、“cc”、“subc”和文本区域“compose” 在用户填写输入框和文本后,用户单击发送按钮,信息记录在控制台中 我现在使用的onclick函数是: function send() { var toEmail = $("#to").val(); var ccEmail = $("#cc").val(); var subject = $("#subj

我一直很难找到帮助我学习和理解JavaScript和JSON概念的信息

我已经创建了一个HTML文档,其中包含输入“to”、“cc”、“subc”和文本区域“compose”

在用户填写输入框和文本后,用户单击发送按钮,信息记录在控制台中

我现在使用的onclick函数是:

function send() {
    var toEmail = $("#to").val();
    var ccEmail = $("#cc").val();
    var subject = $("#subj").val();
    var content = $("#compose").val();

    console.log(toEmail);
    console.log(ccEmail);
    console.log(subject);
    console.log(content);
}
单击“立即发送”时,信息记录如下:

我希望控制台显示:

   {"to":"test_email@hotmail.com}

   {"cc":"ccEmail@hotmail.com}

   {"subj":"Testing"}

   {"compose":"Send to console"}
我知道这可能是非常基本的。然而,在处理用户输入时,我很难掌握JSON


谢谢

您可以将输出包装在对象中。然后可以使用JSON.stringify将对象更改为JSON字符串

function send() {
    var toEmail = $("#to").val();
    var ccEmail = $("#cc").val();
    var subject = $("#subj").val();
    var content = $("#compose").val();

    var result = {
        to: toEmail,
        cc: ccEmail,
        subj: subject,
        compose: content
    };
    console.log(JSON.stringify(result));   /*{"to":"test_email@hotmail.com",
                                              "cc":"ccEmail@hotmail.com",
                                              "subj":"Testing",
                                              "compose":"Send to console"} */
    return JSON.stringify(result);
}
对于所有单个字符串,您可以执行以下操作:

function send() {
    var toEmail = $("#to").val();
    var ccEmail = $("#cc").val();
    var subject = $("#subj").val();
    var content = $("#compose").val();

    console.log(JSON.stringify({to: toEmail});
    console.log(JSON.stringify({cc: ccEmail});
    console.log(JSON.stringify({subj: subject});
    console.log(JSON.stringify({compose: content});
}
使用Array.prototype.reducer

函数发送{ 常量有效载荷=['to','cc','subc','compose']。reduceAC,el=>{ acc[el]=$`${el}`.val; 返回acc; }, {}; 控制台.logpayload; }
你能解释一下你为什么想要这个吗?你想以某种方式使用这些对象吗?您需要将它们组合在一个对象中吗?理解目的将有助于得到好的答案。我的简单答案可能是:do console.log{toEmail};用额外的大括号。但是,如果不知道这是怎么回事,那就没用了。顺便说一句:你的问题的标题有误导性:你不想将函数转换为JSON,你似乎想让函数将输入转换为JSON。是的。这和我要找的东西很相似。但我希望所有4个变量都是单独的JSON字符串。这太完美了。谢谢这对我来说是新的,所以使用$和stringify对我来说都是新的。