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

当我按如下方式使用 RestTemplate 时,我收到错误消息作为标题

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)
4

1 回答 1

0

检查原始响应,尝试在浏览器或休息客户端中点击该 url 以查看返回的内容。

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

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

仅凭这么多信息很难确定。看起来 json 响应包含一个数组对象,但 java bean 字段是一个字符串。

于 2014-08-14T20:41:02.587 回答