java - 在 java pojo 中将相同的 json 字段设置为不同的属性

标签 java spring rest jackson

我想在 java pojo 中将一个 json 字段设置为两个属性。当我在 pojo 中使用 jsonproperty 作为重复属性时,每次都有一个字段为空。

我的 pojo 对象是;

public class PojoTest {

    private String receiverAccountNo;

    private String originalReceiverAccountNo;

    @JsonProperty("receiverAccountNo")
    public String getOriginalReceiverAccountNo() {
        return originalReceiverAccountNo;
    }

    @JsonProperty("receiverAccountNo")
    public void setOriginalReceiverAccountNo(String originalReceiverAccountNo) {
        this.originalReceiverAccountNo = originalReceiverAccountNo;
    }

    public String getReceiverAccountNo() {
        return receiverAccountNo;
    }

    public void setReceiverAccountNo(String receiverAccountNo) {
        this.receiverAccountNo = receiverAccountNo;
    }
}

我的要求是;

{
    "receiverAccountNo":"566665"
}

我的测试 Controller 是;

@PostMapping("/test2")
public String test2(@RequestBody PojoTest pojoTest) {
    return "OriginalReceiverAccountNo:"+pojoTest.getOriginalReceiverAccountNo()+" ReceiverAccountNo:"+pojoTest.getReceiverAccountNo();
}

当我运行代码时,我得到以下响应;

OriginalReceiverAccountNo:566665 ReceiverAccountNo:null

我正在使用 jackson-annotation-2.9.0 依赖项。我该如何解决这个问题?

最佳答案

您可以像这样使用构造函数映射,给定一个 @JsonProperty

设置两个属性
public class Pojo
{
    private final String receiverAccountNo;
    private final String originalReceiverAccountNo;


    @JsonCreator
    public Observation(
            @JsonProperty("receiverAccountNo") String value)
    {
        this.receiverAccountNo = value;
        this.originalReceiverAccountNo = value;
    }

我更喜欢用这种方法来创建不可变对象(immutable对象),但如果你愿意,也可以保持可变

关于java - 在 java pojo 中将相同的 json 字段设置为不同的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54638656/

相关文章:

java - 如何获取 json Web 服务请求的响应时间?

java - AlertDemo 类型的 getSystemService(String) 方法未定义

java - Thymeleaf 不热插拔 Intellij

java - HTTP Get - Python 与 Spring Rest 模板

java - 获取特定列表后,Spring Jpa 删除操作不起作用

Java:不区分大小写的枚举 Jersey 查询参数绑定(bind)

c# - 如何在 C# 中创建 REST Web 服务来处理 Docusign Connect 服务?

java - JBoss AS 4.2.3-GA 中打开文件过多异常

java - 使用多个文本字段进行正确的异常处理

java - spring中如何解析http接受 header ?