问题标签 [jackson-annotations]

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 投票
2 回答
87 浏览

java - 同一字段上的 READ 和 WRITE 的不同 @JsonProperty 配置?

我有一个类(不能修改),比如

反序列化时,我得到如下数据:

由于我无法修改Standing课程,因此我有一个混合类,例如:

由于收到的 json 没有字段positionNumberpositionText因此我使用@JsonPropery注释。

Access.READ_ONLY只是忽略了这个positionNumber领域。

在字段@JsonProperty(value = "position", access = JsonProperty.Access.WRITE_ONLY)上,positionText我确保它position在反序列化期间填充了来自 json 的字段。

这在反序列化期间效果很好。

注意StandingSanitizer集合positionNumber。这是因为接收到的position值可以是非数字值,DSQ在这种情况下,该positionNumber字段将为null.

但是在序列化时,我想从Standing类中输出所有 3 个字段,例如:

但不幸的是,由于@JsonProperty(value = "position", access = JsonProperty.Access.WRITE_ONLY)positionText现场它没有被序列化。

从理论上讲,我想做一些类似的事情:

我可以@JsonProperty对 READ 和 WRITE 使用不同的注释。

但这是不可能的,因为@JsonProperty不允许在字段上重复注释;据我所知,不支持可重复的注释。

有没有其他解决方案来解决这个问题?

我能想到的一件事是有 2 个ObjectMapper实例,有 2 个不同的StandingMixIns;1 用于反序列化,1 用于序列化。但我宁愿继续拥有 1 个ObjectMapper实例,所以使用 2 将是最后的手段。

0 投票
0 回答
42 浏览

java - 在 JSON 中使用变量并在 POJO 中基于节进行反序列化

我在下面定义了一个示例 JSON -

我有一个公共部分和另外两个部分(section1section2)。两个部分共有的数据在公共部分中定义。我必须将此 JSON 反序列化为 POJO。根据将作为参数传递的部分,应该为这些部分反序列化变量的值。如果我将 section1 作为参数传递,数据应该看起来像 -

如果我将 section2 作为参数传递,数据应该看起来像 -

我想知道这是否可以使用 Java 中的任何 JSON 注释来实现?

0 投票
2 回答
66 浏览

java - 如何使用杰克逊将未包装的 JSON 字段映射到包装的对象?

我有一个 JSON 结构

我必须将此 JSON 映射到以下类对象

是否有任何 Jackson 注释可以帮助我在不更改 JSON 结构或修改类结构的情况下做到这一点?

0 投票
2 回答
198 浏览

java - java.lang.NoSuchFieldError: com/fasterxml/jackson/annotation/JsonInclude$Include.USE_DEFAULTS

我正在使用spring 5.3.7 ,当我启动我的应用程序时,它返回以下错误:

我正在使用jackson-annotations-2.10.3.jar它实现 USE_DEFAULTS 枚举。我希望有一个人可以帮助我。

0 投票
0 回答
81 浏览

swagger-2.0 - 如何使用 json 使用 swagger API 2.0 生成注释 @JsonIgnoreProperties

我的 POJO 是使用 json 文件从 swagger 2.0 自动生成的。我希望某些 POJO 具有注释 @JsonIgnoreProperties(ignoreUnknown = true) 作为类级别。注释来自 com.fasterxml.jackson.annotation.JsonIgnoreProperties。那么我怎样才能为特定的 POJO 自动生成这个注释呢?

例如这是我的 POJO

我想将自动生成的 pojo 设为:

0 投票
0 回答
25 浏览

openapi - 如何使用 Jackson 注释将子属性序列化为正确的类型?

我有这样的 openAPI 定义:

BasicJobProperty 使用以下注释生成:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "anyType", visible = true)
@JsonTypeName("BasicJobProperty")

我像这样使用杰克逊序列化程序:

是否可以修复 Jackson 序列化(通过不同的 Jackson 注释或其他方式),以便将 jobProperty 识别为 BasicJobProperty?

0 投票
2 回答
68 浏览

java - 杰克逊反序列化:@JsonAlias 不起作用

我尝试用 Json 字符串填充 Java 对象,它可以为同一字段提供不同类型的变量名。这就是我尝试使用@JsonAlias 的原因。不幸的是,由于未知的原因,我还不能让它工作..

这是我的例子:

Java 对象:

Json,我尝试反序列化:

在字段“test1”上方的@JsonAlias 注释中定义“test_1”后,Jackson 应该找到并填写该字段。但是我得到了以下错误:

编辑:我的 Maven 依赖项:

错误代码: