无法从String值(‘{‘)实例化java.util.LinkedHashMap类型的值;
我有以下两个班级:
@JsonIgnoreProperties(ignoreUnknown = true) public class ChangesJSON { @JsonProperty("changes") List<ChangeJSON> changes; @JsonProperty("more") Boolean more; } public class ChangeJSON { @JsonProperty("epoch") Long epoch; @JsonProperty("payload") Map<String,Object> payload; } 当我尝试使用此测试反序列化时: String test = "{"changes":[{"epoch":1441556306522,"payload":"{"to":1}"},{"epoch":1441555481524,"payload":"{"to":-1}"}],"more":false}"; @Test public void myTest() { ObjectMapper mapper = new ObjectMapper(); ChangesJSON result = null; try { result = mapper.readValue(test,ChangesJSON.class); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } assertNotNull(result); } 我得到以下异常:
似乎地图存在问题,但我认为杰克逊应该能够处理地图.当我将地图更改为Map时,我也遇到了同样的问题.但我确实需要支持各种类作为地图的值. 解决方法
您在有效负载对象周围有引号.尝试更改此部分:
"payload":"{"to":1}" 进入这个: "payload":{"to":1} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |