我已经使用ajax发出了POST请求。但是我正在接收这样的数据
[{u'name': u'cuenta', u'value': u'01050160181244049'}, {u'name': u'beneficiario', u'value': u'xxxxxxx'}, {u'name': u'identificador', u'value': u'V'}, {u'name': u'identidad', u'value': u'2423439'}, {u'name': u'email', u'value': u'dfgfdgfd@gmail.com'}, {u'name': u'monto', u'value': u'1'}, {u'name': u'concepto', u'value': u'pago'}]
我需要在后端进行处理,但是我需要以这种方式进行处理
{
"cuenta": "010501601811634534549",
"beneficiario": "xxxxxxx",
"identificador": "V",
"identidad": "23432423",
"email": "xxxxx@gmail.com",
"monto": "1",
"concepto": "pago"
}
我该如何转换?或者我如何以我需要的普通格式发送我的Ajax请求?这是我的js代码
$(document).ready(function(){
var frm = $('#formulario_datos');
frm.submit(function (e) {
frm.attr("disabled", "disabled");
e.preventDefault();
var formData = JSON.stringify($("#formulario_datos").serializeArray());
$.ajax({
type: "POST",
url: '/transferencia',
data: formData,
success: function (data) {
alert(data.Message);
},
error: function () {
alert("Error!!!");
},
dataType: "json",
contentType : "application/json"
});
});
});
答案 0 :(得分:0)
看起来您只需要reduce
到一个对象中,就可以从数组中的每个项目中提取name
和value
属性:
// const arr = $("#formulario_datos").serializeArray();
const arr = [{'name': 'cuenta', 'value': '01050160181244049'}, {'name': 'beneficiario', 'value': 'xxxxxxx'}, {'name': 'identificador', 'value': 'V'}, {'name': 'identidad', 'value': '2423439'}, {'name': 'email', 'value': 'dfgfdgfd@gmail.com'}, {'name': 'monto', 'value': '1'}, {'name': 'concepto', 'value': 'pago'}];
const transformedObj = arr.reduce((a, { name, value }) => {
a[name] = value;
return a;
}, {});
console.log(transformedObj);
/*
$.ajax({
type: "POST",
url: '/transferencia',
data: JSON.stringify(transformedObj),
...
*/
答案 1 :(得分:0)
您可以对结果使用dict
理解。这是您可以在REPL中尝试的示例:
>>> result = [
{u'name': u'cuenta', u'value': u'01050160181244049'},
{u'name': u'beneficiario', u'value': u'xxxxxxx'},
{u'name': u'identificador', u'value': u'V'},
{u'name': u'identidad', u'value': u'2423439'},
{u'name': u'email', u'value': u'dfgfdgfd@gmail.com'},
{u'name': u'monto', u'value': u'1'},
{u'name': u'concepto', u'value': u'pago'}]
>>> {e["name"]: e["value"] for e in result}
{u'beneficiario': u'xxxxxxx', u'monto': u'1', u'identificador': u'V', u'concepto': u'pago', u'cuenta': u'01050160181244049', u'identidad': u'2423439', u'email': u'dfgfdgfd@gmail.com'}