java - 在这种情况下如何使用@JsonProperty - jackson API with lombok

标签 java json jackson lombok

我知道如何在 jackson API 中使用 @JsonProperty 但下面的情况不同。

我在下面的 json 片段中。

{"results":[{"uniqueCount":395}

所以,为了用 jackson API 解析上面的 json,我在 java pojo 类下面写了。

package com.jl.models;

import lombok.Data;

@Data
public class Results
{
    private int uniqueCount;

}

后来,我不得不解析下面类似的 json 片段。

{"results":[{"count":60}

现在,这里的问题是我无法使用 Results 类解析此 json,因为它需要一个字符串 uniqueCount

我可以轻松地创建另一个具有 count 成员变量的 java pojo 类,但我必须创建所有具有 Results 类实例的父 java 类。

那么,有什么方法可以自定义具有 lombok 行为的 Results 类来解析两个 json 而不会相互影响?

提前感谢您的帮助。

最佳答案

您可以使用 Jackson 的 @JsonAnySetter 注释将所有未知键指向一个方法,然后您可以自己完成分配:

@Data
public class Results
{
    private int uniqueCount;

    // all unknown properties will go here
    @JsonAnySetter
    public void setUnknownProperty(String key, Object value) {
        if (key.equals("count")) {
            uniqueCount = (Integer)value;
        }
    }
}

关于java - 在这种情况下如何使用@JsonProperty - jackson API with lombok,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43255501/

相关文章:

java - 将 Kotlin MutableMap 转换为 java.util.HashMap

java - 使用 TomEE 和 IntelliJ IDEA 的 RESTful 服务

java - Akka : How to get actor causing exception on supervisor

MySQL 存储 1MB 的 JSON 好不好

java - withSerializationInclusion 函数在最新的 Jackson-databind-2.9.8 中不可用

java - 修改XML节点但保持XML文件格式不变

java - ClassCastException 将字符串解析为 JSONArray

c++ - 如何将此类序列化为 XML 或 JSON

java - Spring 启动: JSON Deserialization not working for getters/setters

java - 如何使用自动发现在 Jersey 中启用自动 JSON 编码?