如何解决RestEasy:org.codehaus.jackson.map.JsonMappingException:无法从START_OBJECT令牌..中反序列化java.util.ArrayList的实例
这看起来像杰克逊(Jackson)错误,它期望解析一个数组(以“ [”开头),但遇到一个对象(“ {”)的开头标记。通过查看您的代码,我猜测它正在尝试将JSON反序列化到您的List中,但它正在获取对象的JSON。
您的REST端点返回的JSON是什么样的?它应该看起来像这样
[
{
// JSON for VariablePresentation value 0
"field0": <some-value>
<etc...>
},
<etc...>
]
解决方法
我有一个休息终点,它返回List<VariablePresentation>
。我正在尝试将此其余端点测试为
@Test
public void testGetAllVariablesWithoutQueryParamPass() throws Exception {
final ClientRequest clientCreateRequest = new ClientRequest("http://localhost:9090/variables");
final MultivaluedMap<String,String> formParameters = clientCreateRequest.getFormParameters();
final String name = "testGetAllVariablesWithoutQueryParamPass";
formParameters.putSingle("name",name);
formParameters.putSingle("type","String");
formParameters.putSingle("units","units");
formParameters.putSingle("description","description");
formParameters.putSingle("core","true");
final GenericType<List<VariablePresentation>> typeToken = new GenericType<List<VariablePresentation>>() {
};
final ClientResponse<List<VariablePresentation>> clientCreateResponse = clientCreateRequest.post(typeToken);
assertEquals(201,clientCreateResponse.getStatus());
final List<VariablePresentation> variables = clientCreateResponse.getEntity();
assertNotNull(variables);
assertEquals(1,variables.size());
}
该测试失败,错误提示
org.codehaus.jackson.map.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token(..)
如何解决此问题?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。