问题标签 [jackson-modules]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
409 浏览

java - com.fasterxml.jackson.databind.jsonschema 和 com.fasterxml.jackson.databind.jsonSchema 包之间的冲突

我在将jackson-module-jsonSchema-2.1.0.jarjackson-databind-2.1.5.jar库合并到我的项目中时遇到问题。

我在 Windows 上使用 Eclipse,并且创建了一个新的“来自现有 JAR 档案的插件”项目,其中包含 jackson-module-jsonSchema-2.1.0.jar 和 jackson-databind-2.1.5.jar 作为依赖项.

问题如下:

  • 在创建的项目中只有包com.fasterxml.jackson.databind.jsonSchema
  • 包裹com.fasterxml.jackson.databind.jsonshema丢失

我想这是因为两个 JAR(jackson-module-jsonSchema-2.1.0.jar 和 jackson-databind-2.1.5.jar)分别包含两个相似路径中的 com/fasterxml/jackson/databind/jsonschema代码com/fasterxml/jackson/databind/jsonShema。这两个路径仅在大小写(s vs S)上有所不同,并且在 Windows 上,包的路径不区分大小写。

我怎么解决这个问题?谢谢。

0 投票
1 回答
211 浏览

json - 沿格式化程序使用自定义消息转换器时出现 NoSuchMessageException

我正在使用 Spring 3.2 M1 和 Hibernate 3。

我正在使用格式化程序将 POJO(恰好是 Hibernate 映射实体)格式化为它们的字符串表示形式。这非常方便,因为它允许我将字符串值绑定到对象。xml中的配置是:

一切工作正常,直到我需要添加一个自定义对象映射器(HibernateAwareObjectMapper 使用jackson-module-hibernate)来摆脱来自后端的 jsonifiying 响应时休眠 POJO 的延迟加载问题。我在上面的代码中添加了这个:

这具有修复延迟加载问题的效果。但是在调用格式化程序时出现了一个新错误(将字符串绑定到前的日期时):

fieldOfX 是一个 Date 类型的字段,在添加自定义对象映射器之前,该字段已从其字符串表示形式完美格式化为其日期/对象表示形式。我很想知道depended代表什么。

对我来说另一件奇怪的事情是从对象到字符串的格式化似乎工作得很好。

据我了解,格式化程序只是特殊的转换器。消息转换器只是另一种转换器。但我开始感觉到我在这个问题上错了。

那么我在做什么/理解错误?欢迎任何帮助。

0 投票
1 回答
1566 浏览

java - 何时使用 AALTO 以及何时使用 WoodStox 与 Jackson 进行 xml 处理

阅读此讨论

Aalto 是三者中最快的,尤其是在解析方面。它通常比 Woodstox 或 SJSXP 快 50% - 100%。一个缺点是它不处理 DTD(因此不处理外部实体;它处理预定义和字符实体)。

似乎 Aalto 是用杰克逊读/写 xml 的推荐方法。但是在jackson-dataformat-xml页面上,它建议使用 Woodstox,它已经有一段时间没有更新了。

那么最好的前进方式是什么?伍德斯托克斯还是阿尔托?

0 投票
1 回答
575 浏览

xml-serialization - Jackson API - Customize StdKeySerialize to add an attribute

We have a HashMap with values as per below.

The general jackson-databind api would serialize this into

I want it to serialize as per below.

I tried extending StdKeySerializer and adding the custom serializer to XmlMapper as per below:

The custom keyserializer looks as per below:

The "TODO" in the above code was the place where I spent lot of time and no success yet.

The next way of solving the aforementioned problem would be write a custom MapSerializer and I guess it would be little too far. Looking for your thoughts on the solutions.

Thanks.

0 投票
1 回答
94 浏览

jackson - 我如何影响带注释的序列化程序的实例创建

我写了一个杰克逊模块来启用特定类型的序列化。现在我想启用新序列化程序之一的全局配置。所以我必须在创建期间在序列化程序实例上设置一个属性。

有没有办法从杰克逊模块中做到这一点?

0 投票
2 回答
28933 浏览

spring - Spring RestTemplate 与 Jackson 作为 HttpMessageConverter 和 joda DateTime 属性无法反序列化

场景如下。我有一个 ObjectMapper (Jackson 2),它注册了一个 JodaModule,能够序列化和反序列化 Joda DateTime 类型。此 ObjectMapper 使用自定义 JSON 字符串进行测试,并按预期工作。

我有一个 RestTemplateFactory,它负责实例化一个 RestTemplate,并将之前配置的 ObjectMapper bean 设置为 RestTemplate。

现在,当我联系 web 服务时,它无法反序列化 DateTime 对象,并显示以下错误消息:

也永远不会调用 DateTimeDeserializer.class。有人知道我在这里缺少什么吗?

0 投票
6 回答
77753 浏览

jackson - JDK8 java.time 是否有杰克逊数据类型模块?

我正在为新的JDK8 java.time类寻找一个模块。我查看了FasterXML GitHub 项目列表,目前没有找到。

据我了解,Jackson 仍在针对 JDK6 进行编译,因此不能直接使用这些类,并且必须按照 Joda 的要求将其构建为单独的模块。

我不介意开始这个项目,但我想看看是否已经在进行其他努力。

0 投票
3 回答
935 浏览

java - 覆盖由 jackson-datatype-hibernate 生成的 id 名称

是否可以覆盖由jackson-datatype-hibernate Feature.SERIALIZE_IDENTIFIER_FOR_LAZY_NOT_LOADED_OBJECTS 生成的名称?

目前它正在使用完整的包名进行序列化:

我希望它改用 id :

我正在对 ObjectMapper 进行子类化,所以也许有一些我可以挂钩的方法

0 投票
1 回答
7296 浏览

java - 如何为嵌套的 JSON 响应映射 Mixin

我正在使用 Jackson API 将我的JSON 响应映射到 java 对象。例如,

对于响应 { name :'karthikeyan',age:'24',gender:'Male'}

是混入,它工作正常。(在内部我们将映射这个 pojo 和混入)。现在我如何在 Mix-in 中表示以下响应?

我尝试了以下方法,但没有运气。

但无法准确地映射它们,请就如何做到这一点发表您的意见和想法?

0 投票
1 回答
1604 浏览

jackson - 如何通过杰克逊让 JodaModule 与ZoneUTC() 日期格式有关?

所以我已经建立了我的杰克逊和乔达支持......

我的 OjbectMapper 配置为使用 JodaModule() 来格式化 java.util.Dates

但我不知道如何让 JodaModlue 格式化我的 POJO 中出现的 java.util.Date,例如“2014-02-07T21:29:19.032Z”而不是“2014-02-07T21:29:19.032+” 0000”。当我在 Joda 中“独立”执行此操作时,咒语是 ISODateTimeFormat.dateTime().withZoneUTC()。如何将 DateTimeFormatter 插入到我推入 ObjectMapper 的 JodaModule() 中?