gpt4 book ai didi

java - 将平面 JSON 对象分配给多个类

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

我正在尝试找出一种方法将“参与者”对象的选择属性分配给特定的类:

这是我正在使用的格式

"participants": [
{
"person_id": "18044029",
"role_id": "35351535",
"person_name": "Lella Vignelli",
"person_date": "Italian, b. 1934",
"role_name": "Donor",
"role_display_name": "Donated by"
},
{
"person_id": "18042329",
"role_id": "35351535",
"person_name": "Massimo Vignelli",
"person_date": "Italian, active USA, 1931\u20132014",
"role_name": "Donor",
"role_display_name": "Donated by"
}
]

这是我的类(class)”

@JsonIgnoreProperties(ignoreUnknown = true)
public class ChObject {

@JsonProperty("participants")
private List<Participation> participants;

//Setters and getters
}

这是参与类:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Participation {

private Role role;

private Participant participant;
//Setters and getters

}

角色类别:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Role {

@JsonProperty("role_id")
private int role_id;

@JsonProperty("role_name")
private String role_name;

//Setters and getters
}

参与者类别:

@JsonIgnoreProperties(ignoreUnknown = true)
public class Participant {

private int person_id;

@JsonProperty("person_name")
private String person_name;

@JsonProperty("person_date")
private String person_date;

//Setters and getters
}

我遇到的问题是,我无法弄清楚如何将“person_name”和“person_date”属性获取到Participant类中,或者将“role_id”和“role_name”属性从Role类中获取到参与类。

Participation 类可以访问所有这些属性,但我似乎无法将它们分配给 Participant 类和 Roles 类的属性。

感谢您的帮助。抱歉,如果我不是 100% 清楚所有事情。

最佳答案

您的类结构需要与 JSON 文档的结构相匹配,该文档是包含 List<Participant> 类型的单个字段的 1 个对象。 ,以及每个Participant具有这 6 个属性。

正确反序列化后,您可以将数据移动到您拥有的其他类。

正确的类是:

public class ChObject {

@JsonProperty("participants")
List<Participant> participants;

// setters & getter omitted

}

public class Participant {

@JsonProperty("person_id")
private String id;

@JsonProperty("role_id")
private String roleId;

@JsonProperty("person_name")
private String name;

@JsonProperty("person_date")
private String date;

@JsonProperty("role_name")
private String roleName;

@JsonProperty("role_display_name")
private String roleDisplayName;

// setters & getters omitted

}

此外,请注意无需将 java 字段名称与属性名称相匹配,因为您在 JsonProperty 中指定了其 JSON 名称。注释。

关于java - 将平面 JSON 对象分配给多个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33287065/

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