JSON 转 List Java 代码实现:递归方法详解
可以使用递归来实现将JSON数据转换为List的Java代码,具体实现如下:\n\njava\nimport com.alibaba.fastjson.JSON;\nimport com.alibaba.fastjson.JSONArray;\nimport com.alibaba.fastjson.JSONObject;\n\nimport java.util.ArrayList;\nimport java.util.List;\n\npublic class JSONToListConverter {\n\n public static void main(String[] args) {\n 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\'}';\n\n List<Team> teams = convertJSONToList(jsonString);\n for (Team team : teams) {\n System.out.println(team.getLabel());\n for (Member member : team.getMembers()) {\n System.out.println(member.getName());\n }\n }\n }\n\n public static List<Team> convertJSONToList(String jsonString) {\n JSONObject jsonObject = JSON.parseObject(jsonString);\n JSONArray childrenArray = jsonObject.getJSONArray('children');\n\n return convertArrayToList(childrenArray);\n }\n\n private static List<Team> convertArrayToList(JSONArray jsonArray) {\n List<Team> teamList = new ArrayList<>();\n\n for (int i = 0; i < jsonArray.size(); i++) {\n JSONObject teamObject = jsonArray.getJSONObject(i);\n\n Team team = new Team();\n team.setLabel(teamObject.getString('label'));\n\n JSONArray membersArray = teamObject.getJSONArray('members');\n team.setMembers(convertArrayToMemberList(membersArray));\n\n JSONArray childrenArray = teamObject.getJSONArray('children');\n team.setChildren(convertArrayToList(childrenArray));\n\n teamList.add(team);\n }\n\n return teamList;\n }\n\n private static List<Member> convertArrayToMemberList(JSONArray jsonArray) {\n List<Member> memberList = new ArrayList<>();\n\n for (int i = 0; i < jsonArray.size(); i++) {\n JSONObject memberObject = jsonArray.getJSONObject(i);\n\n Member member = new Member();\n member.setName(memberObject.getString('name'));\n member.setGender(memberObject.getInteger('gender'));\n member.setMobile(memberObject.getString('mobile'));\n member.setPosition(memberObject.getString('position'));\n member.setUserId(memberObject.getString('userId'));\n\n memberList.add(member);\n }\n\n return memberList;\n }\n}\n\nclass Team {\n private String label;\n private List<Member> members;\n private List<Team> children;\n\n // getters and setters\n\n public String getLabel() {\n return label;\n }\n\n public void setLabel(String label) {\n this.label = label;\n }\n\n public List<Member> getMembers() {\n return members;\n }\n\n public void setMembers(List<Member> members) {\n this.members = members;\n }\n\n public List<Team> getChildren() {\n return children;\n }\n\n public void setChildren(List<Team> children) {\n this.children = children;\n }\n}\n\nclass Member {\n private String name;\n private int gender;\n private String mobile;\n private String position;\n private String userId;\n\n // getters and setters\n\n public String getName() {\n return name;\n }\n\n public void setName(String name) {\n this.name = name;\n }\n\n public int getGender() {\n return gender;\n }\n\n public void setGender(int gender) {\n this.gender = gender;\n }\n\n public String getMobile() {\n return mobile;\n }\n\n public void setMobile(String mobile) {\n this.mobile = mobile;\n }\n\n public String getPosition() {\n return position;\n }\n\n public void setPosition(String position) {\n this.position = position;\n }\n\n public String getUserId() {\n return userId;\n }\n\n public void setUserId(String userId) {\n this.userId = userId;\n }\n}\n\n\n上述代码将JSON数据转换为了一个包含Team和Member对象的嵌套列表,可以根据实际需求进行进一步处理和使用。
原文地址: https://www.cveoy.top/t/topic/pF0r 著作权归作者所有。请勿转载和采集!