嗨,我正在尝试将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 内容处置:表单数据; name =“ 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
请帮助。谢谢。
答案 0 :(得分:0)
得到JSON parse error
的原因是您实际上没有发送JSON格式的数据。相反,您的数据具有FormData格式。
有两种方法可以修复它。
1。您只需要发送nameList
data: JSON.stringify(nameList)
2。您希望将其作为FormData(可选地与其他数据一起)发送
data: {formdata: jasonData, var2: "other data"}