无法将START_ARRAY转换为java.lang.String类型

4
@JsonIgnoreProperties(ignoreUnknown = true)
public class TestResult {
private Map<String, String> datas;
>
......}

当我使用以下的RestTemplate时,我收到了标题为“error”的错误信息。
TestResult result= restTemplate.postForObject(AppConstants.URL +Secure/View/getTest",request, TestResult.class);

当我使用JMeter测试时,数据是正确的,但在Android上(使用RestTemplate)却失败了。请帮助我如何解决,谢谢!

10-17 17:08:27.571: E//RequestProcessor.java:250(16865): 17:08:27.570 pool-12-thread-1 An exception occured during request network execution :Could not read JSON: Can not deserialize instance   of java.lang.String out of START_ARRAY token
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):  at [Source: libcore.net.http.ChunkedInputStream@41b46428; line: 1, column: 11] (through reference chain: model.vo.TestResult["datas"]); nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):  at [Source: libcore.net.http.ChunkedInputStream@41b46428; line: 1, column: 11] (through reference chain: model.vo.TestResult["datas"])
10-17 17:08:27.571: E//RequestProcessor.java:250(16865): org.springframework.http.converter.HttpMessageNotReadableException: Could not read JSON: Can not deserialize instance of java.lang.String out of START_ARRAY token
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):  at [Source: libcore.net.http.ChunkedInputStream@41b46428; line: 1, column: 11] (through reference chain: model.vo.TestResult["datas"]); nested exception is org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.lang.String out of START_ARRAY token
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):  at [Source: libcore.net.http.ChunkedInputStream@41b46428; line: 1, column: 11] (through reference chain: model.vo.TestResult["datas"])
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.http.converter.json.MappingJacksonHttpMessageConverter.readInternal(MappingJacksonHttpMessageConverter.java:125)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.http.converter.AbstractHttpMessageConverter.read(AbstractHttpMessageConverter.java:147)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.web.client.HttpMessageConverterExtractor.extractData(HttpMessageConverterExtractor.java:76)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:484)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:439)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:317)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at service.TestRequest.loadDataFromNetwork(TestRequest.java:73)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at service.TestRequest.loadDataFromNetwork(TestRequest.java:1)
10-17 17:08:27.571: E//RequestProcessor.java:250(16865):    at com.octo.android.robospice.request.CachedSpiceRequest.loadDataFromNetwork(CachedSpiceRequest.java:27)

请发布完整的堆栈跟踪。 - tom
你能展示一个样例回复吗? - nilesh
1个回答

0

检查原始响应,尝试在浏览器或REST客户端中访问该URL以查看返回的内容。

无法读取JSON:无法从START_ARRAY令牌中反序列化java.lang.String实例

无法从START_ARRAY令牌中反序列化java.lang.String实例 链:model.vo.TestResult["datas"])

只有这么少的信息很难确定问题。看起来JSON响应包含一个数组对象,但Java Bean字段是字符串。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接