gpt4 book ai didi

java - Json 字符串到具有动态键名称的 Java 对象

转载 作者:行者123 更新时间:2023-12-03 01:22:25 25 4
gpt4 key购买 nike

我正在尝试将这种结构的 json 字符串解析为 Java 对象,但每次尝试都失败了。

{
"message": "Test Message",
"status": true,
"users": {
"user_xy": [
{
"time": "2016-08-25 19:01:20.944614158 +0300 EEST",
"age": 24,
"props": {
"pr1": 197,
"pr2": 0.75,
"pr3": 0.14,
"pr4": -0.97
}
}
],
"user_zt": [
{
"time": "2016-08-25 17:08:36.920891187 +0300 EEST",
"age": 29,
"props": {
"pr1": 1.2332131860505051,
"pr2": -0.6628148829634317,
"pr3": -0.11622442112006928
}
}
]
}
}

props 字段可以包含 1 个属性或 6 个属性,这取决于数据库记录。用户名部分也动态变化。

我可以用 Jackson Lib 成功解析这个结构化字符串吗?

最佳答案

您必须创建如下所示的 calss 结构才能将字符串映射到 java 对象。

创建一个详细信息类

public class Details {
private String message;
private String status;
private Map<String, List<UserDetails>> users = new HashMap<String, List<UserDetails>>();
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public Map<String, List<UserDetails>> getUsers() {
return users;
}
public void setUsers(Map<String, List<UserDetails>> users) {
this.users = users;
}
}

创建 UserDetails 类,如下所示。

public class UserDetails {
private String time;
private String age;
private Map<String, String> prop = new HashMap<String, String>();
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Map<String, String> getProp() {
return prop;
}
public void setProp(Map<String, String> prop) {
this.prop = prop;
}
}

现在您可以将字符串映射到 Details 类。

希望这会有所帮助..

关于java - Json 字符串到具有动态键名称的 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39159770/

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