我用弹簧靴和百里香叶 我尝试保存对象列表。
我的对象。
public class GECPD {
public Integer id;
public String name;
public List<GEPD> geL;
public Integer giId;
public Integer sGEId;
}
在我的控制器中,我返回一个对象列表
Set<GECPD> gECL = new HashSet<>();
...
model.addAttribute("gECL", new ArrayList<>(gECL));
数据正确显示
<input name="id[0]" type="hidden" value="136">
<select name="sGEId[0]" class="form-control">
<option value="246">01</option>
<option value="391">00</option>
</select>
我的控制器
@PutMapping(value = "/{id}/ge")
public ResponseEntity updateGE(@PathVariable("id") Integer id, @RequestBody List<GECPD> dto) {
....
return new ResponseEntity(dto,HttpStatus.OK);
}
function saveGroundElement(){
var form = transForm.serialize('#gEForm');
var url = "/rest/spi/" + $("#spi").val() + "/ge";
form = JSON.stringify(form);
jQuery.ajax({
type: "put",
url: url,
contentType: "application/json",
data: form,
success: function (data, status, jqXHR) {
},
error: function (jqXHR, status) {
checkError(jqXHR);
}
});
}
数据已发送
{"id":["136"],"sGEId":["246"]}
我得到这个结果
Erreur:{“ timestamp”:“ 2018-06-29T15:36:58.427 + 0000”,“ status”: 400,“错误”:“错误请求”,“消息”:“ JSON解析错误:无法 在START_OBJECT中反序列化
java.util.ArrayList
的实例 令牌嵌套异常为 com.fasterxml.jackson.databind.exc.MismatchedInputException:无法 在START_OBJECT中反序列化java.util.ArrayList
的实例 令牌\ n位于[来源:(PushbackInputStream);行:1,列:1]“, “ path”:“ / rest / spi / 1 / ge”}
有什么主意吗?
答案 0 :(得分:1)
您的前端端还可以...您需要修改服务器端
@PutMapping(value = "/{id}/ge")
public ResponseEntity updateGE(@PathVariable("id") Integer id, @RequestBody GECPDList dto) {
....
return new ResponseEntity(dto,HttpStatus.OK);
}
在GECPDS中
public GECPDList class{
private List<GECPD> gecpds;
}