gpt4 book ai didi

java - 使用@JsonAlias使用@RequestBody转换为Pojo

转载 作者:行者123 更新时间:2023-12-01 21:26:10 24 4
gpt4 key购买 nike

我的 JSON 架构如下所示,

{
"prty_id": "hgh",
"customer_id": "ghjghjghj"
}

我有如下所示的模型类

public class PARTY   {
@JsonAlias({"prty_id", "prtyId"})
String prtyId;

@JsonAlias({"customer_id", "customerId"})
String customerId;
......
}

当我尝试使用 @RequestBody 注释使用 @RequestBody PARTY 主体作为方法参数进行反序列化时,我得到 POJO 类字段的空值。

@PostMapping(value="/party/db",produces="application/json",consumes="application/json")


public Party controller(@RequestBody Party body)
//here in body parameter only i am getting null values
{
ObjectMapper obj = new ObjectMapper();
String json = obj.writeValueAsString(body);
System.out.println("===="+json);

PARTY p = obj.readValue(json, PARTY.class);
System.out.println("------"+p);
p.toString();
return p;
}

最佳答案

您需要在您的类中编写 setter/getter ,以便 jackson 反对象化可以工作。最好在定义中使用 CamelCase:

public class Party {

@JsonAlias({"prty_id", "prtyId"})
String prtyId;

@JsonAlias({"customer_id", "customerId"})
String customerId;

public String getPrtyId() {
return prtyId;
}

public String getCustomerId() {
return customerId;
}
}

编辑:添加 Controller :

@PostMapping("/test")
public Party test(@RequestBody Party body) {
return body;
}

关于java - 使用@JsonAlias使用@RequestBody转换为Pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58831977/

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