无法将JSON映射到Java bean

无法将JSON映射到Java bean,第1张

概述我收到错误:线程“main”中的异常org.springframework.http.converter.HttpMessageNotReadableException:无法读取JSON:无法从START_ARRAY令牌中反序列化com.zee.FilterVO的实例.在[来源:sun.net.www.protocol.http.HttpURLConnect

我收到错误:

线程“main”中的异常org.springframework.http.converter.httpMessageNotReadableException:无法读取JSON:无法从START_ARRAY令牌中反序列化com.zee.FilterVO的实例.在[来源:sun.net.www.protocol.http.httpURLConnection$httpinputStream@1b54362; line:1,column:1];嵌套异常是org.codehaus.jackson.map.JsonMapPingException ::无法从START_ARRAY令牌中反序列化com.zee.FilterVO的实例

Java调用获取JsON:

ResponseEntity

用于映射JsON的Java Bean:

public class FilterVO {    private String username;    private String expirationTime;    private String lastMatchedTime;    private String state;    private Integer matchedTodayCount;    private Boolean useRegEx;    private List

JsON我想要得到的:

[{    "username": "Z111111","expirationTime": "2015-03-15T14:00:00.000-0400","activationTime": "1969-12-31T19:00:00.000-0500","hosts": ["aa","bb"],"matchStrings": [" aa is not running"," bb is not running"],"useRegEx": false,"nameValuePairs": {        "KEY VALUE": "asasa","PROGRAM": "dsds","REGION": "dfsffs"    },"objectID": "SOMEID:20141015140803579-802","matchedTodayCount": 190,"lastMatchedTime": "2015-03-09T07:53:20.366-0400","state": "ACTIVE","description": "Blah Blah Blah..."}]

Initially I thought I am facing this issue because of deserialization of one element Array. So I modifIEd my java code.

private voID getFilter() {        RestTemplate restTemplate = getCustomrestTemplate();        httpheaders headers = new httpheaders();        headers.setAccept(Arrays.asList(MediaType.APPliCATION_JsON));        headers.set("access-token",getAccesstoken());        httpentity

我仍然得到同样的错误.

我在我的类路径中有以下杰克逊罐子:

jackson-annotations-2.5.1.jarjackson-core-2.5.1.jarjackson-core-asl-1.9.13.jarjackson-databind-2.5.1.jarjackson-datatype-joda-2.5.1.jarjackson-mapper-asl-1.9.13.jar

完整堆栈跟踪:

Exception in thread "main" org.springframework.http.converter.httpMessageNotReadableException: Could not read JsON: Can not deserialize instance of com.zee.FilterVO out of START_ARRAY token at [Source: sun.net.www.protocol.http.httpURLConnection$httpinputStream@bc5596; line: 1,column: 1]; nested exception is org.codehaus.jackson.map.JsonMapPingException: Can not deserialize instance of com.zee.FilterVO out of START_ARRAY token at [Source: sun.net.www.protocol.http.httpURLConnection$httpinputStream@bc5596; line: 1,column: 1]    at org.springframework.http.converter.Json.MapPingJacksonhttpMessageConverter.readJavaType(MapPingJacksonhttpMessageConverter.java:179)    at org.springframework.http.converter.Json.MapPingJacksonhttpMessageConverter.read(MapPingJacksonhttpMessageConverter.java:171)    at org.springframework.web.clIEnt.httpMessageConverterExtractor.extractData(httpMessageConverterExtractor.java:94)    at org.springframework.web.clIEnt.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:693)    at org.springframework.web.clIEnt.RestTemplate$ResponseEntityResponseExtractor.extractData(RestTemplate.java:679)    at org.springframework.web.clIEnt.RestTemplate.doExecute(RestTemplate.java:496)    at org.springframework.web.clIEnt.RestTemplate.execute(RestTemplate.java:465)    at org.springframework.web.clIEnt.RestTemplate.exchange(RestTemplate.java:416)    at com.fIDelity.selfservice.test.JMagicRestAPI.getFilter(JMagicRestAPI.java:63)    at com.fIDelity.selfservice.test.JMagicRestAPI.main(JMagicRestAPI.java:46)Caused by: org.codehaus.jackson.map.JsonMapPingException: Can not deserialize instance of com.zee.FilterVO out of START_ARRAY token at [Source: sun.net.www.protocol.http.httpURLConnection$httpinputStream@bc5596; line: 1,column: 1]    at org.codehaus.jackson.map.JsonMapPingException.from(JsonMapPingException.java:163)    at org.codehaus.jackson.map.deser.StdDeserializationContext.mapPingException(StdDeserializationContext.java:219)    at org.codehaus.jackson.map.deser.StdDeserializationContext.mapPingException(StdDeserializationContext.java:212)    at org.codehaus.jackson.map.deser.BeanDeserializer.deserializefromArray(BeanDeserializer.java:875)    at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:597)    at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732)    at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1923)    at org.springframework.http.converter.Json.MapPingJacksonhttpMessageConverter.readJavaType(MapPingJacksonhttpMessageConverter.java:176)    ... 9 more
最佳答案问题是你正在获得一个JsON数组,但是你正试图用你的情况下的POJO,FilterVO反序列化那个JsON.

尝试更改此行:

ResponseEntity

通过这个:

ResponseEntity

现在你将有一个List< FilterVO>跟…共事. 总结

以上是内存溢出为你收集整理的无法将JSON映射到Java bean全部内容,希望文章能够帮你解决无法将JSON映射到Java bean所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1266594.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)