可以使用递归来实现将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对象的嵌套列表,可以根据实际需求进行进一步处理和使用

childrenida58f1051-1901-44a3-8730-fd2a635ebe62label1队ruleFormisteam1teamRemarkteamPlannodeTypecustommembersuserId1677151197902102529headUrlnullnamedymobile13111111111checkedfalsegender2position4childr

原文地址: https://www.cveoy.top/t/topic/hWVe 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录