Jquery 通过AJAX发送多维表单JSON数据

Jquery 通过AJAX发送多维表单JSON数据,jquery,json,ajax,multidimensional-array,Jquery,Json,Ajax,Multidimensional Array,我被困在一个多维表单问题上 我试图通过ajax发送一个JSON,其结构如下: { "user": 1, "quiz": 25, "questions": { // question 132, hidden input (checkboxes) "132": [24536, 566, 64], // question 133, hidden input (mixed ch

我被困在一个多维表单问题上

我试图通过ajax发送一个JSON,其结构如下:

    {
        "user": 1,
        "quiz": 25,
        "questions": {
            // question 132, hidden input (checkboxes)
            "132": [24536, 566, 64],
            // question 133, hidden input (mixed checkboxes/textarea)
            "133": [2345, "some text from a text area", 456],
            // question 134, hidden input (radio buttons)
            "134": [876]
        },
        "other_data": [2, 543, "test", 989]
    }
我的表格:

<form id="myForm" action="myAPI.php">

    <input type="hidden" name="user" value="1">
    <input type="hidden" name="quiz" value="25">

    <p>Question A</p>
    <input type="hidden" name="question" value="132">
    a1
    <input name="answer[]" type="checkbox" value="a"><br>
    a2
    <input name="answer[]" type="checkbox" value="b"><br>
    a3
    <input name="answer[]" type="checkbox" value="c"><br>

    <p>Question B</p>
    <input type="hidden" name="question" value="133"  >
    a1
    <input name="answer[]" type="checkbox" value="d"><br>
    a2
    <input name="answer[]" type="checkbox" value="e"><br>
    a3
    <textarea name="answer_" rows="3"></textarea><br>

    <p>Question C</p>
    <input type="hidden" name="question" value="134">
    a1
    <input name="answer" type="radio" value="f"><br>
    a2
    <input name="answer" type="radio" value="g"><br>
    a3
    <input name="answer" type="radio" value="h"><br>

    <hr> 
    <button type="submit">invia</button>

</form>
输出为:

[{
    "name": "user",
    "value": "1"
}, {
    "name": "quiz",
    "value": "25"
}, {
    "name": "question",
    "value": "132"
}, {
    "name": "answer[]",
    "value": "b"
}, {
    "name": "answer[]",
    "value": "c"
}, {
    "name": "question",
    "value": "133"
}, {
    "name": "answer[]",
    "value": "e"
}, {
    "name": "answer_",
    "value": "test"
}, {
    "name": "question",
    "value": "134"
}, {
    "name": "answer",
    "value": "g"
}]

有小费吗?我做错了什么

我使用:)

解决了这个问题,这是
serializeArray()
的正确行为。要构建所需的结构,需要编写自己的逻辑。表单的结构与要创建的JSON对象不同。另外,我不会调用
myForm.serializeArray()
。这就是为什么它生成的是一个数组,而不是一个对象。
[{
    "name": "user",
    "value": "1"
}, {
    "name": "quiz",
    "value": "25"
}, {
    "name": "question",
    "value": "132"
}, {
    "name": "answer[]",
    "value": "b"
}, {
    "name": "answer[]",
    "value": "c"
}, {
    "name": "question",
    "value": "133"
}, {
    "name": "answer[]",
    "value": "e"
}, {
    "name": "answer_",
    "value": "test"
}, {
    "name": "question",
    "value": "134"
}, {
    "name": "answer",
    "value": "g"
}]