栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

泽西岛:无法从字符串中反序列化ArrayList的实例

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

泽西岛:无法从字符串中反序列化ArrayList的实例

经过漫长的一天,又是…阅读了许多Wiki和常见问题解答之后,它终于可以工作了。

我做了什么:

  1. 使用杰克逊
  2. 强制Jackson提供商使用
  3. 定义自定义反序列化器
  4. 激活ACCEPT_SINGLE_VALUE_AS_ARRAY标志
  5. 修复依赖关系

故事:

我正在使用默认情况下使用(I belive)jaxb的Jersey 1.13。

我将其更改为 使用杰克逊

<init-param>    <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>    <param-value>true</param-value></init-param>

如以下所述:

这使我的球衣使用杰克逊,但问题仍然存在。杰克逊还不能反序列化数组。

我强迫使用 Jackson提供商

<init-param>    <param-name>com.sun.jersey.config.property.packages</param-name>    <param-value>        your.project.packages;        org.prehaus.jackson.jaxrs</param-value></init-param>

是必要的步骤,但还不够。必须激活 ACCEPT_SINGLE_VALUE_AS_ARRAY 标志。

ObjectMapper objectMapper;objectMapper = new ObjectMapper().configure(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY, true);

我需要定义 自定义反序列化器

public class MyResolver implements ContextResolver<ObjectMapper> {@Override    public ObjectMapper getContext(final Class<?> objectType) {        ...         return objectMapper;    }}

为了做到这一点:

定制对象映射器

完成所有这些操作后,它仍然无法正常工作…

那讨论 依赖问题 ..

这反映了我的问题, Jackson v1.9.2 附带了 Jersey v1.13我需要Jackson v2.0

我删除了jersey-json的依赖项,因为它包括杰克逊1.9.2:

<dependency>    <groupId>com.sun.jersey</groupId>    <artifactId>jersey-json</artifactId></dependency>

并直接声明依赖项:

<dependency>    <groupId>com.fasterxml.jackson.jaxrs</groupId>    <artifactId>jackson-jaxrs-json-provider</artifactId></dependency>

参考:

jackson-jaxrs-json-provider

注意: 此更改将删除Jersey的使用Jaxb或Jettison的功能。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/419194.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号