我收到错误:
线程“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所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)