【发布时间】:2019-05-26 15:14:46
【问题描述】:
您好,我正在尝试将 JSON 数组从 POST 发送到 Spring 后端。
在我的 Javascript 中:
$('#tblfilelisting tbody tr').each(function () {
var namerecord = {
No: $(this).find('.assignindex').text().trim(),
Name: $(this).find('.getname').val(),
File: $(this).find('.getfilename').text().trim(),
Status: $(this).find('.radioname:checked').val()
};
nameList.push(namerecord);
});
var jasonData = new FormData();
jasonData.append('arrStr', JSON.stringify(nameList));
$.ajax({
type: 'POST',
url: '/api/CheckValidateBeforeSave',
data: jasonData,
contentType: 'application/json',
processData: false,
beforeSend: function () {
//
},
success: function (data) {
if (data.code != '200') {
return false;
}
var get = data.jasonResult;
for (var i = 0; i < get.length; i++) {
appendResultResponse(get.No[i], get.Name[i], get.File[i], get.Status[i], get.Result[i]);
appendErrorMess(get.No[i], get.hasDuplicated[i]);
}
$('#uploadFileConfirmation').modal('show');
},
error: function (err) {
//
},
});
在我的 REST 控制器中,我有:
@PostMapping(value = "/CheckValidateBeforeSave", produces = "application/json", consumes = "application/json")
@ResponseBody
public FileManagement CheckValidateBeforeSave(@RequestBody FileManagement fileManagement) {
fileManagementService.checkMultipleFiles(fileManagement);
return fileManagement;
}
但我得到的错误是: JSON解析错误:数值中出现意外字符('-'(代码45)):预期数字(0-9)跟随减号,用于有效数值;嵌套异常是 com.fasterxml.jackson.core.JsonParseException:数值中的意外字符('-'(代码 45)):预期数字(0-9)跟随减号,对于有效数值
但是我的 POST 请求没有 - 号:
------WebKitFormBoundaryId7kxO7B9rozEwHv 内容处置:表单数据;名称="arrStr"
[{"No":"1","Name":"dd","File":"Test PDF 2.pdf","Status":"on"}] ------WebKitFormBoundaryId7kxO7B9rozEwHv-- line-awesome.woff2?v=1.1。 CheckValidateBeforeSave common.js util.js AuthenticationService.Authenticate?1shttp%3A%2F%2F…zaSyBTGnKT7dt597vo9QgeQ7BFhvSRP4eiMSM&token=29026
请帮忙。谢谢。
【问题讨论】:
-
不要使用
FormData,只需将ajax的data设置为JSON字符串 -
您提供的json格式不正确。