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
循环遍历所有输入并将 name
和 value
推入 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>
我正在使用 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
循环遍历所有输入并将 name
和 value
推入 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>