【发布时间】:2016-06-10 01:45:46
【问题描述】:
我使用 spring boot、jquery 和 spring rest 控制器
我尝试保存对象列表。
我发送到服务器
{"defaultConfigDto":[{"fieldName":"","defaultConfigId":"","fieldValue":"0.2"},{"defaultConfigId":"","fieldName":"","fieldValue":"0.3"}]}
在我的休息控制器中,我有
@RequestMapping(value = "/tax", method = RequestMethod.POST)
public Long saveTax(@RequestBody List<DefaultConfigDto> defaultsConfigs) {
return defaultConfigService.saveTaxe(defaultsConfigs);
}
我的 DefaultConfigDto 对象
public class DefaultConfigDto {
private Long defaultConfigId;
private String fieldName;
private String fieldValue;
}
在服务器中我看到了这个错误
com.fasterxml.jackson.databind.JsonMappingException: 不能 从 START_OBJECT 令牌中反序列化 java.util.ArrayList 的实例
我的html
<div class="form-group">
<input type="hidden" id="defaultConfigDto[0].fieldName" name="defaultConfigDto[0].fieldName">
<input type="hidden" id="defaultConfigDto[0].defaultConfigId" name="defaultConfigDto[0].defaultConfigId">
<label for="tvqRate" class="col-sm-2 control-label">Tvq</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="tvqRate" name="defaultConfigDto[0].fieldValue" placeholder="tax 1">
</div>
</div>
<div class="form-group">
<input type="hidden" id="defaultConfigDto[1].defaultConfigId" name="defaultConfigDto[1].defaultConfigId">
<input type="hidden" id="defaultConfigDto[1].fieldName" name="defaultConfigDto[1].fieldName">
<label for="tpsRate" class="col-sm-2 control-label">Tps</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="tpsRate" name="defaultConfigDto[1].fieldValue" placeholder="tax 2">
</div>
</div>
我需要修改什么才能只获取列表?
【问题讨论】:
-
你的 json 键应该是“defaultsConfigs”吗?
-
您的 JSON 看起来像一个带有
defaultConfigDto字段的对象,其中defaultConfigDto字段是DefaultConfigDto对象的数组。您可能需要创建一个类public class DefaultConfigs { private List<DefaultConfigDto> defaultConfigDto; }。