我的Java类中有一个属性,返回类型为Map<String,List<Object>
,而使用Jackson进行解析时,我遇到异常。有人可以帮我这个吗?
org.springframework.http.converter.HttpMessageNotWritableException: 无法写内容:类java.lang.String不是子类型 [收集类型; class java.util.List,包含[simple type,class java.lang.Object]](通过引用链: com.test.model [&#34; dropdownModel&#34;]);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException:Class java.lang.String不是[集合类型的子类型;类 java.util.List,包含[simple type,class java.lang.Object]] (通过参考链:com.test.model [&#34; dropdownModel&#34;])
这就是我想用杰克逊解析的bean:
public class AdminModel {
private Map<String, List<LabelValueModel>> dropdownModel = null;
public Map<String, List<LabelValueModel>> getDropdownModel() {
return dropdownModel;
}
public void setDropdownModel( Map<String, List<LabelValueModel>> dropdownModel ) {
this.dropdownModel = dropdownModel;
}
}
这是我的休息控制器:
@RequestMapping(value = "/getDropdownValues", method = RequestMethod.POST, headers = { "Accept=application/json" })
public ResponseEntity<AdminModel> getDropdownValues( @RequestBody DropDownModel inModel ) {
AdminModel responseModel = adminService.getDropdownValues( inModel );
return new ResponseEntity<AdminModel>( responseModel, HttpStatus.OK );
}
答案 0 :(得分:0)
我的问题是由于我的地图是Map<String, List<String>>
并且我放了("key", "value")
,这当然是非法的。它允许它,因为有一点它是Map<String, Object>
所以它很好。
更改此项以列出修复我的问题的列表。