问题标签 [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.
java - 同一字段上的 READ 和 WRITE 的不同 @JsonProperty 配置?
我有一个类(不能修改),比如
反序列化时,我得到如下数据:
由于我无法修改Standing
课程,因此我有一个混合类,例如:
由于收到的 json 没有字段positionNumber
,positionText
因此我使用@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 将是最后的手段。
java - 在 JSON 中使用变量并在 POJO 中基于节进行反序列化
我在下面定义了一个示例 JSON -
我有一个公共部分和另外两个部分(section1和section2)。两个部分共有的数据在公共部分中定义。我必须将此 JSON 反序列化为 POJO。根据将作为参数传递的部分,应该为这些部分反序列化变量的值。如果我将 section1 作为参数传递,数据应该看起来像 -
如果我将 section2 作为参数传递,数据应该看起来像 -
我想知道这是否可以使用 Java 中的任何 JSON 注释来实现?
java - 如何使用杰克逊将未包装的 JSON 字段映射到包装的对象?
我有一个 JSON 结构
我必须将此 JSON 映射到以下类对象
是否有任何 Jackson 注释可以帮助我在不更改 JSON 结构或修改类结构的情况下做到这一点?
java - java.lang.NoSuchFieldError: com/fasterxml/jackson/annotation/JsonInclude$Include.USE_DEFAULTS
我正在使用spring 5.3.7
,当我启动我的应用程序时,它返回以下错误:
我正在使用jackson-annotations-2.10.3.jar
它实现 USE_DEFAULTS 枚举。我希望有一个人可以帮助我。
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 设为:
openapi - 如何使用 Jackson 注释将子属性序列化为正确的类型?
我有这样的 openAPI 定义:
BasicJobProperty 使用以下注释生成:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "anyType", visible = true)
@JsonTypeName("BasicJobProperty")
我像这样使用杰克逊序列化程序:
是否可以修复 Jackson 序列化(通过不同的 Jackson 注释或其他方式),以便将 jobProperty 识别为 BasicJobProperty?
java - 杰克逊反序列化:@JsonAlias 不起作用
我尝试用 Json 字符串填充 Java 对象,它可以为同一字段提供不同类型的变量名。这就是我尝试使用@JsonAlias 的原因。不幸的是,由于未知的原因,我还不能让它工作..
这是我的例子:
Java 对象:
Json,我尝试反序列化:
在字段“test1”上方的@JsonAlias 注释中定义“test_1”后,Jackson 应该找到并填写该字段。但是我得到了以下错误:
编辑:我的 Maven 依赖项:
错误代码: