Javascript 从表单创建json

Javascript 从表单创建json,javascript,json,forms,Javascript,Json,Forms,这是我的表格:。。。当您提交此表单时,我需要像这样创建JSON data = { 'voted_questions': [question.pk, question.pk, question.pk, question.pk], 'answers': [ { 'question': question.pk, 'option': option.pk, }, { 'quest

这是我的表格:。。。当您提交此表单时,我需要像这样创建JSON

data = {
        'voted_questions': [question.pk, question.pk, question.pk, question.pk],
        'answers': [
        {
        'question': question.pk,
        'option': option.pk,
        },
        {
        'question': question.pk,
        'option': option.pk,
        },
        ]
    }

question.pk和option.pk是标识每个问题和选项的数字(它是ID)。你能帮我怎么创建这个JSON吗?

我不太清楚为什么你想要一个回答问题的列表,而你也有一个答案列表(包括问题ID)。但这是你要的,所以给你

HTML

<h2>Form</h2>
<form action="" method="post">
Which city is in Great Britain?<br/>
<input type="hidden" name="first" value="1"/>
London:<input type="radio" name="first" data-questionid="1" value="11"/><br/>
New York:<input type="radio" name="first" data-questionid="1" value="12"/><br/>
Which city is in USA?<br/>
<input type="hidden" name="second" value="2"/>
Washington:<input type="radio" name="second" data-questionid="2" value="13"/><br/>
Tokio:<input type="radio" name="second" data-questionid="2" value="14"/><br/>
<p><input type="submit" /></p>
</form>
<h2>JSON</h2>
<pre id="result">
</pre>

可能是“谢谢你”的副本,它有效。。。我在这里添加了一些东西:还有类型:复选框、文本和隐藏。。。你能为他们写代码吗?我想向json添加以下三个隐藏输入:“‘投票者’:{‘ip_地址’:a.b.c.d,‘投票_开始’:投票_开始,‘投票_结束’:投票_结束,},@user3357400如果我提供的代码满足您最初的请求,请将其标记为正确/接受的答案。至于您的额外请求,所以不是一个要求人们为您编写代码的地方。我提供的内容应该足以让您了解如何将其应用于其他输入。至少,你需要尝试一下。如果你在某个特定的问题上陷入困境,那么开始一个新的问题,向你展示代码和任何相关的错误,也许有人会引导你走向正确的方向。但千万不要说“我需要XYZ,给我能做到这一点的代码”。@user1505169我在这里编写了一些新的代码:你能改变它吗?如何从投票者中删除[]?我想要这样的json:{'ip_地址':a.b.c.d,'voting_started':voting_started,'voting_ended':voting_ended,}谢谢你的帮助
$(function() {
    $('form').submit(function() {
        var voted_questions = [];
        var answers = [];

        $('input[type="radio"]:checked').each(function(){
            voted_questions.push($(this).data('questionid'));
            answers.push({'question':$(this).data('questionid'), 'options':this.value});
        });

        var data = {
            'voted_questions': voted_questions,
            'answers': answers
        };

        $('#result').text(JSON.stringify(data));
        return false;
    });


});