gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:36 25 4
gpt4 key购买 nike

我想在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com