问题标签 [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.
java - 仅在 json 中忽略字段,但在使用 jackson-dataformat-xml 时不忽略 xml
Jackson
与模块一起使用jackson-dataformat-xml
,我可以同时序列POJO
化JSON
和XML
. 我的对象中有一些字段(xml 属性)应该只被序列化为XML
而不是JSON
. 如果我应用@JsonIgnore
注释,即使使用@JsonXMLProperty
.
我怎样才能只忽略JSON
而不是忽略字段XML
?
json - 有没有办法可以从 Jackson ObjectMapper 注销模块?
我正在注册KeyDeseriliser
到ObjectMapper
. 阅读后JSON
我想取消注册这个模块。因为我ObjectMapper
是静态的,我不想在任何其他地方使用这个模块。
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的集合?
谢谢你的帮助!
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?
json - 如何使用 Jackson 解析 JSON 对象的外键
在带有 Dropwizard(带有 Jackson 和 Hibernate)的图书库系统中,有以下类:
要添加一本书,书名和作者 ID 应作为 json 对象发送。
但是,杰克逊似乎无法让作者脱离给定的作者 ID。
有没有办法配置从请求的 JSON 到书籍对象以及从 authorId 到作者的映射,而无需创建像这样的临时对象
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,
scala - Scala 类 [_$1] 类型为 _$1
现在试图实例化一个新JSONConverter
的来注册杰克逊的 Scala 模块。
上面的代码位于一个标准的 Scala trait 中,看起来像trait Writeable[T] { }
.
上述代码的问题在于 Scala 似乎在使用 Types 时遇到了困难。编译器错误是:
有人知道这个问题的来源或简单的解决方法吗?谢谢!
更新
虽然@wingedsubmariner
有一个答案允许它最初编译,但一旦我开始编写更多代码,问题就会进一步级联。我将展示一个示例:
在withConverter
编译器处抛出相同的错误:
我什至尝试使用converter.asInstanceOf[JSONConverter[T]]
但继承 ( JSONConverter<T> extends Converter<T>
) 进行相同的类型转换,似乎级联问题。这里有什么想法吗?
java - Java Jackson:反序列化通用类型
我正在尝试反序列化一个类TrainingData
,如下所示。TrainingData
使用 gnerics 并且其属性之一在其超类中声明。当我尝试反序列化 JSON 字符串以构造TrainingData
对象时,出现以下异常:
我使用以下 JSON 字符串来构造对象:
训练数据.java
数据.java:
}
PlayMusicContext.java
上下文.java:
我错过了什么?
fasterxml - JAXB 类 - XML 未按预期创建
我正在使用 fasterxml-jaxb(2.3) 模块来生成 XML,但它似乎在创建 XML 时没有读取 Xmlns 注释。我在我的包信息中定义了前缀,如下所示
Jackson 不应用前缀,但是如果我使用 JDK 的 JAXB 进行编组,则将前缀应用于 XML