问题标签 [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 回答
2162 浏览

java - com.fasterxml.jackson.databind.JsonMappingException:无法实例化类型的值 [简单类型,类 car.Part]

我正在尝试将此 XML 反序列化为一个Parts对象:

汽车.java

零件.java

部分.java

我看不出我的代码有什么问题,为什么它一直给我以下信息?

0 投票
1 回答
428 浏览

jackson - Karaf 无法在运行时加载 Afterburner 类

我正在尝试在使用 Java 1.8 的 Karaf 3.0.5(带有默认 felix)中使用 AfterBurner。

在一个地方的相同代码库中,它工作得非常好,而在一个地方它却失败了。它正在工作的代码如下所示(并且在流程中首先被调用)

它失败的代码如下所示: -

在第二种情况下,它失败并出现以下错误:-

我在捆绑包中的 MANIFEST.mf 中没有问题。添加了所有导入:-

即使在 Karaf 中做 bundle:headers 我看到所有的包都正确导入

你能告诉我可能出了什么问题吗?为什么 Karaf 能够在一个地方加载一个类而在另一个地方失败?如果我将它作为 Karaf OSGi 容器之外的普通 jar 运行,只需添加一切都可以正常工作。

0 投票
1 回答
5656 浏览

java - JsonGenerationException:CSV 生成器不支持属性的对象值

我正在尝试序列Foo化为String. 这似乎是一个非常简单的任务,但由于某种原因DateTime似乎打破了它。

测试.java

Foo.java

我已经尝试在我的对象中使用@JsonGetter和,但它并没有真正产生任何影响。@JsonSetterFoo

是什么导致了这个错误?

0 投票
1 回答
354 浏览

java - 杰克逊的@JsonIdentityInfo 广度优先

我正在使用 Jackson 的 @JsonIdentityInfo 从 JSON 中删除圆形对象。

假设下面是 Java 类 Class A, B, C ,下面是结构,

我的对象是(A)

它将对象更改为

因为 C 具有相同的 id,所以我希望将其实现为广度优先,即第一级应该是删除对象并赋予属性,但深度级别应该这样做,有没有办法像下面这样得到它?

0 投票
5 回答
21625 浏览

java - 将 Jackson ObjectMapper 类设置为不使用科学记数法进行 double

我正在为 JsonSchema 使用库 com.fasterxml.jackson 库,当我使用以下代码设置整数模式的范围时,我正在创建一个 IntegerSchema 对象:

当我使用 ObjectMapper 将 IntegerSchema 转换为字符串时,得到以下响应:

最大值和最小值正在转换为科学计数法。

但我需要以非科学计数法输出如下:

我无法更改 IntegerSchema 类。

请建议如何在不扩展 IntegerSchema 类的情况下获得所需的输出?

提前致谢

0 投票
1 回答
206 浏览

java - 扩展枚举并在java中的重写方法中使用它

我面临一个关于从返回枚举的抽象扩展方法的问题。

下面是我需要扩展的 com.fasterxml.jackson 库的抽象类。

而 JsonFormatTypes 是枚举:

现在我想扩展 SwitchSchema 和 JsonFormatTypes 的 JsonSchema 类,使其类型为“SWITCH”

现在我的问题是如何扩展 JsonFormatTypes 枚举以具有“SWITCH”并在覆盖方法中使用它?

0 投票
4 回答
75718 浏览

java - 具有多参数构造函数的杰克逊 JSON 反序列化

我在我的项目中使用 FasterXML/Jackson-Databind 已经有一段时间了,一切都很好,直到我发现了这篇文章并开始使用这种方法来反序列化没有 @JsonProperty 注释的对象。

问题是,当我有一个带有多个参数的构造函数并用 @JsonCreator 注释装饰这个构造函数时,杰克逊会抛出以下错误:

我创建了一个小项目来说明这个问题,我试图反序列化的类是这个:

反序列化的代码是这样的:

我已经尝试删除 @JsonCreator,但如果这样做,则会引发以下异常:

我试图发出“mvn clean install”,但问题仍然存在。

为了包含一些额外的信息,我已经彻底研究了这个问题(GitHub 问题、博客文章、StackOverflow 问答)。以下是我一直在做的一些调试/调查:

调查一

生成的字节码上的javap -v 给我这个:

在谈论构造函数时,我猜想-parameters标志确实是为 javac 编译器设置的。

调查二

如果我创建一个带有单个参数的构造函数,则对象会被初始化,但我想要/需要使用多参数构造函数。

调查3

如果我在每个字段上使用注释@JsonProperty,它也可以工作,但是对于我的原始项目来说,开销太大,因为我在构造函数中有很多字段(而且使用注释重构代码也非常困难)。

剩下的问题是: 如何让 Jackson 在没有注释的情况下使用多参数构造函数?

0 投票
2 回答
224 浏览

java - 如何避免 Joda 对象中的内容字段?

我在文档中使用 Joda 对象(DateTime 和 DateTimeZone),每当我通过 REST 接口访问它时,我都会获得带有此类字段的条目

lastAggregationDate: { content: "2016-07-12T17:58:43.643Z" }

代替

lastAggregationDate: "2016-07-12T17:58:43.643Z"

我声明了 Joda Jackson 依赖项,并且看到了这些类型的反序列化器,所以我对这里的工作感到困惑。

我在稍作修改的 Spring 示例项目中复制了这种行为,但使用的是 Java 的本机日期类型而不是 Joda 的。我已将出生日期属性添加到 Person 对象并修改shouldRetrieveEntity测试以查找$.dateOfBirth.content. 我已经确认正在使用序列化程序,并且似乎该LocalDate对象被视为资源而不是简单属性。

0 投票
1 回答
1011 浏览

java - Jackson 的 StdDeserializer 的构造函数中使用的Class vc 或 JavaType valueType 是什么

我正在使用Jackson JSON 库StdDeserializer制作自定义反序列化器(扩展),但我无法弄清楚构造函数参数的目的是什么。杰克逊是用来做什么的?仅仅是因为 Java 没有具体化的泛型,而 Jackson 需要有关您正在创建实例的泛型类型的更多信息吗?Class<?>JavaType valueType

0 投票
2 回答
943 浏览

java - 用于 Joda 日期时间的 Jackson JSON 模式生成器

我正在使用 Jackson JSON 模式模块版本2.7.4为我的一些类生成 JSON 模式。在我的课程中,我使用了 JodaDateTime对象。生成此对象的架构,并分解其所有属性(如下所示)。是否可以将其转换为类似的东西DATE_TIME