AJAX JSON 数组到单个 JSON 对象

AJAX JSON array to single JSON object

我正在使用 AJAX 将 JSON 数据从表单发送到我的服务器,但它是以 JSON 值的数组形式发送的,而不仅仅是单个 JSON 对象 - 如何修改此脚本以将其作为单个对象发送?

function send() {
    $.ajax({
        method: "POST",
        url: "http://localhost:1323/submitted",
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify($("#myform").serializeArray())
    });
}

例如,而不是将其发送为:

[{"name":"name","value":"boris"},{"name":"password","value":"password123"}]

我想发送为:

{"name":"boris", "password":"password123"}

您可以使用 .each 循环遍历所有输入并将 namevalue 推入 JSON 对象。

演示代码:

function send() {
  var json_object = {};
  //loop through inputs
  $("#myform input").each(function(i, v) {
    json_object[$(this).attr("name")] = $(this).val() //get values

  })
  console.log(json_object)
  //or 
  var json_object1 = {}
  $($("#myform").serializeArray()).each(function(i, v) {
    json_object1[v.name] = v.value
  })
  console.log(json_object1)
  //send this..
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="myform">
  <input name="name" type="text">
  <input name="password" type="text">
  <button type="button" onclick="send()">Send</button>
</form>