问题标签 [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 投票
1 回答
2991 浏览

java - 仅在 json 中忽略字段,但在使用 jackson-dataformat-xml 时不忽略 xml

Jackson与模块一起使用jackson-dataformat-xml,我可以同时序列POJOJSONXML. 我的对象中有一些字段(xml 属性)应该只被序列化为XML而不是JSON. 如果我应用@JsonIgnore注释,即使使用@JsonXMLProperty.

我怎样才能只忽略JSON而不是忽略字段XML

0 投票
1 回答
239 浏览

json - d3js Country JSON 的 Jackson ObjectMapper 转换问题

我想使用Jackson API从 Github反序列化这个JSON列表。

开始使用数组内的数组时会导致异常。任何人都可以帮助学习此映射。

Java 代码:Pojo

也测试类

0 投票
2 回答
2926 浏览

json - 有没有办法可以从 Jackson ObjectMapper 注销模块?

我正在注册KeyDeseriliserObjectMapper. 阅读后JSON我想取消注册这个模块。因为我ObjectMapper是静态的,我不想在任何其他地方使用这个模块。

0 投票
0 回答
2922 浏览

hibernate - Jackson 尝试序列化延迟加载的对象并抛出“org.hibernate.LazyInitializationException - failed to lazily initialize ...”

我的环境

  • 杰克逊数据类型休眠 2.3.2
  • Spring-webmvc 3.2.6
  • 休眠 4.3.4

所以基本上我的应用程序应该返回一个序列化公司的列表。公司类有一组延迟加载的旅行者对象(映射中定义的延迟='true')。因此,它们不应该被序列化。然而,当杰克逊从控制器序列化公司时,由于某种原因,它也尝试序列化旅行者,但它崩溃并抛出错误: org.hibernate.LazyInitializationException - 未能延迟初始化角色集合:com.model。核心.公司.员工

我已经用谷歌搜索了这个问题,并且在几篇文章中看到了它,但到目前为止我还无法解决它。https://github.com/FasterXML/jackson-datatype-hibernate/issues/25

我的代码基本上由一个带有 hbm.xml 映射的 java“Corporation”类组成。我还扩展了 ObjectMapper 并将其设置为 Spring 消息转换器,如该帖子中所述(避免在未获取的惰性对象上进行 Jackson 序列化)然后我创建了一个“CorporationMixin”类并使用@JsonIdentityInfo 对其进行注释。最后,我只是从控制器返回公司列表。

请看一下我的代码并给我一个提示。我不知道问题是我的实现还是 jackson-datatype-hibernate 库中的错误。

映射 hbm :

“公司”实体:

映射器添加到 servlet-context.xml:

HibernateAwareObjectMapper 类:

公司混合类:

返回序列化公司的控制器类:

有一种解决方法可以避免休眠崩溃,基本上是在 web.xml 中添加它

但这并不能真正解决最初的问题,这就是为什么杰克逊试图序列化lazy=true的集合?

谢谢你的帮助!

0 投票
2 回答
4453 浏览

jersey - 在 Jersey 中使用 Jackson 和多个配置的 ObjectMapper

是否可以使用 Jackson 设置 Jersey 以使用多个配置进行序列化/反序列化ObjectMappers

我想做的是注册一个“默认”杰克逊ObjectMapper,然后能够注册另一个功能,该功能提供了ObjectMapper一些专门的配置,在某些情况下将“覆盖”“默认” ObjectMapper

例如,这ContextResolver将用于“默认”映射器:

ContextResolver将覆盖“默认”映射器:

我在JacksonJsonProvider代码中看到 Jackson 支持ObjectMapper提供程序注入/解析。但是,在实践中,我看到的是提供者的“顺序”似乎是随机的(我猜不是,但我无法弄清楚如何控制顺序)。有时“覆盖”出现在“默认”之前,一切正常,但在下一次服务器启动时,顺序会发生变化。

我试图通过多种方式使其发挥作用,包括:

  • 手动注册ContextResolver<ObjectMapper>实现(以不同的顺序)
  • ContextResolver<ObjectMapper>通过@Provider注解注册实现
  • 注册时指定优先级

我正在使用以下内容:

  • 泽西 2.8
  • 杰克逊 2.3.3

也许我采取了完全错误的方法?
有没有更好的方法来实现我想要做的事情?也许我应该只定义两个独立的 JAX-RS 应用程序并为每个应用程序配置一个 ObjectMapper?

0 投票
1 回答
1173 浏览

json - 如何使用 Jackson 解析 JSON 对象的外键

在带有 Dropwizard(带有 Jackson 和 Hibernate)的图书库系统中,有以下类:

要添加一本书,书名和作者 ID 应作为 json 对象发送。

但是,杰克逊似乎无法让作者脱离给定的作者 ID。

有没有办法配置从请求的 JSON 到书籍对象以及从 authorId 到作者的映射,而无需创建像这样的临时对象

0 投票
1 回答
152 浏览

java - Jackson Json serialization

I'm using Jackson 2.4 and I need to generate data to be process by d3.js.

d3.js want my json values to be format like this :

In my Java model I have :

It is only for serialization, not for deserialization, so is there a way with Jackson annotation to have the json generate as I want because for now it generates this :

Thanks,

0 投票
1 回答
1212 浏览

scala - Scala 类 [_$1] 类型为 _$1

现在试图实例化一个新JSONConverter的来注册杰克逊的 Scala 模块。

上面的代码位于一个标准的 Scala trait 中,看起来像trait Writeable[T] { }.

上述代码的问题在于 Scala 似乎在使用 Types 时遇到了困难。编译器错误是:

有人知道这个问题的来源或简单的解决方法吗?谢谢!

更新

虽然@wingedsubmariner有一个答案允许它最初编译,但一旦我开始编写更多代码,问题就会进一步级联。我将展示一个示例:

withConverter编译器处抛出相同的错误:

我什至尝试使用converter.asInstanceOf[JSONConverter[T]]但继承 ( JSONConverter<T> extends Converter<T>) 进行相同的类型转换,似乎级联问题。这里有什么想法吗?

0 投票
0 回答
586 浏览

java - Java Jackson:反序列化通用类型

我正在尝试反序列化一个类TrainingData,如下所示。TrainingData使用 gnerics 并且其属性之一在其超类中声明。当我尝试反序列化 JSON 字符串以构造TrainingData对象时,出现以下异常:

我使用以下 JSON 字符串来构造对象:

训练数据.java

数据.java:

}

PlayMusicContext.java

上下文.java:

我错过了什么?

0 投票
1 回答
164 浏览

fasterxml - JAXB 类 - XML 未按预期创建

我正在使用 fasterxml-jaxb(2.3) 模块来生成 XML,但它似乎在创建 XML 时没有读取 Xmlns 注释。我在我的包信息中定义了前缀,如下所示

Jackson 不应用前缀,但是如果我使用 JDK 的 JAXB 进行编组,则将前缀应用于 XML