childrenida58f1051-1901-44a3-8730-fd2a635ebe62label1队ruleFormisteam1teamRemarkteamPlannodeTypecustommembersuserId1677151197902102529headUrlnullnamedymobile13111111111checkedfalsegender2position4childr
可以使用递归来实现将JSON数据转换为List的Java代码,具体实现如下:
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import java.util.ArrayList;
import java.util.List;
public class JSONToListConverter {
public static void main(String[] args) {
String jsonString = "{\"children\":[{\"id\":\"a58f1051-1901-44a3-8730-fd2a635ebe62\",\"label\":\"1队\",\"ruleForm\":{\"isteam\":1,\"teamRemark\":\"\",\"teamPlan\":\"\"},\"nodeType\":\"custom\",\"members\":[{\"userId\":\"1677151197902102529\",\"headUrl\":null,\"name\":\"dy\",\"mobile\":\"13111111111\",\"checked\":false,\"gender\":2,\"position\":\"4\"}],\"children\":[{\"id\":\"5e45dbc3-0144-458b-8413-8a5471c9556d\",\"label\":\"2队\",\"ruleForm\":{\"isteam\":1,\"teamRemark\":\"\",\"teamPlan\":\"\"},\"nodeType\":\"custom\",\"members\":[{\"userId\":\"1677136208906641410\",\"headUrl\":null,\"name\":\"朱蛟龙\",\"mobile\":\"19918314858\",\"checked\":false,\"gender\":1,\"position\":\"4\"}],\"children\":[]}]}],\"members\":[{\"gender\":2,\"name\":\"dy\",\"mobile\":\"13111111111\",\"position\":\"4\",\"userId\":\"1677151197902102529\"},{\"gender\":1,\"name\":\"朱蛟龙\",\"mobile\":\"19918314858\",\"position\":\"4\",\"userId\":\"1677136208906641410\"}],\"id\":0,\"label\":\"作业小组\",\"ruleForm\":{\"isteam\":1,\"teamRemark\":\"\",\"teamPlan\":\"\"},\"nodeType\":\"root\"}";
List<Team> teams = convertJSONToList(jsonString);
for (Team team : teams) {
System.out.println(team.getLabel());
for (Member member : team.getMembers()) {
System.out.println(member.getName());
}
}
}
public static List<Team> convertJSONToList(String jsonString) {
JSONObject jsonObject = JSON.parseObject(jsonString);
JSONArray childrenArray = jsonObject.getJSONArray("children");
return convertArrayToList(childrenArray);
}
private static List<Team> convertArrayToList(JSONArray jsonArray) {
List<Team> teamList = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject teamObject = jsonArray.getJSONObject(i);
Team team = new Team();
team.setLabel(teamObject.getString("label"));
JSONArray membersArray = teamObject.getJSONArray("members");
team.setMembers(convertArrayToMemberList(membersArray));
JSONArray childrenArray = teamObject.getJSONArray("children");
team.setChildren(convertArrayToList(childrenArray));
teamList.add(team);
}
return teamList;
}
private static List<Member> convertArrayToMemberList(JSONArray jsonArray) {
List<Member> memberList = new ArrayList<>();
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject memberObject = jsonArray.getJSONObject(i);
Member member = new Member();
member.setName(memberObject.getString("name"));
member.setGender(memberObject.getInteger("gender"));
member.setMobile(memberObject.getString("mobile"));
member.setPosition(memberObject.getString("position"));
member.setUserId(memberObject.getString("userId"));
memberList.add(member);
}
return memberList;
}
}
class Team {
private String label;
private List<Member> members;
private List<Team> children;
// getters and setters
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public List<Member> getMembers() {
return members;
}
public void setMembers(List<Member> members) {
this.members = members;
}
public List<Team> getChildren() {
return children;
}
public void setChildren(List<Team> children) {
this.children = children;
}
}
class Member {
private String name;
private int gender;
private String mobile;
private String position;
private String userId;
// getters and setters
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getGender() {
return gender;
}
public void setGender(int gender) {
this.gender = gender;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
public String getPosition() {
return position;
}
public void setPosition(String position) {
this.position = position;
}
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
上述代码将JSON数据转换为了一个包含Team和Member对象的嵌套列表,可以根据实际需求进行进一步处理和使用
原文地址: https://www.cveoy.top/t/topic/hWVe 著作权归作者所有。请勿转载和采集!