java 백엔드에서 데이터를 트리로 변환하고 맵은 json 트리를 생성하여 백엔드로 되돌려줍니다. (백엔드 변환)

java 백엔드, 데이터를 트리로 변환하고,map는 json 트리를 생성하여 전방으로 되돌려줍니다(백엔드 변환)
1. 왜 이런 블로그를 쓰나요?
2.java 백엔드 코드
3. 전환된 데이터는 다음과 유사한 형식으로 앞부분에 있습니다.
1. 왜 이런 블로그를 쓰나요?
회사에서 실습을 할 때 약간의 구덩이를 만났다. 바로 병원의 과실이 그의 자부 id를 통해 프로젝트 트리를 만들어야 한다는 것이다. 그러나 과실의 차원이 매우 많고 심지어 6층에 이르러 최종적으로 최적화된 귀속 알고리즘을 선택했다.
만약에 3층이나 3층 이하라면 내부류를 사용할 수 있고 3층을 초과하면 귀속을 하는 것이 가장 좋지만 반드시 최적화해야 한다는 것을 기억해야 한다.
2.java 백엔드 코드
코드의 해석과 이해는 내가 코드를 마운트 해제하고 앞부분으로 돌아가면 자동으로 Json 형식으로 변환되는 데이터입니다.

// , , 
public JSONObject getJsontree(JSONArray json,JSONObject job){
 JSONArray tempJson = JSONArray.fromObject("[]");
 // id job id 
 for(int i = 0;i < json.size();i++) 
 { 
 // Iterator 
 if(json.getJSONObject(i).get("parent_id").equals(job.get("unit_sn"))) {  
  tempJson.add(json.getJSONObject(i));
 }; 
 }
 //  , , , , 。。
 json.removeAll(tempJson);
 for(int i = 0;i < tempJson.size(); i ++) {
 // , 
 getJsontree(json, tempJson.getJSONObject(i));
 }
 // map 
 if(tempJson.size()!=0)
 job.put("children", tempJson);
 return job; 
}
3. 전환된 데이터는 다음과 유사한 형식으로 앞부분에 있습니다.

[
 { text: ' 1', children: [
  { text: ' 1.1' },
  { text: ' 1.2' },
  { text: ' 1.3', children: [
  { text: ' 1.3.1' },
  { text: ' 1.3.2' }
  ]
  },
  { text: ' 1.4' }
 ]
 }
 ]
보충 지식:java가list를 나무 구조로 바꾸는 방법
1. json 봉인 데이터로 전환

[
 {
 "name":" ",
 "pid":0,
 "id":1
 },
 {
 "name":" ",
 "pid":1,
 "id":2
 },
 {
 "name":" ",
 "pid":2,
 "id":3
 },
 {
 "name":" ",
 "pid":0,
 "id":4
 },
 {
 "name":" ",
 "pid":4,
 "id":5
 }
]
현재 수요는 자바를 사용하여 상기 데이터를 트리 구조로 바꾸는 것이다. 전환 후의 구조는 다음과 같다.

[
 {
 "children":[
  {
  "children":[
   {
   "name":" ",
   "pid":2,
   "id":3
   }
  ],
  "name":" ",
  "pid":1,
  "id":2
  }
 ],
 "name":" ",
 "pid":0,
 "id":1
 },
 {
 "children":[
  {
  "name":" ",
  "pid":4,
  "id":5
  }
 ],
 "name":" ",
 "pid":0,
 "id":4
 }
]
코드는 다음과 같습니다.

 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 
 public static JSONArray listToTree(JSONArray arr, String id, String pid, String child) {
 JSONArray r = new JSONArray();
 JSONObject hash = new JSONObject();
 // Object ,key id
 for (int i = 0; i < arr.size(); i++) {
  JSONObject json = (JSONObject) arr.get(i);
  hash.put(json.getString(id), json);
 }
 // 
 for (int j = 0; j < arr.size(); j++) {
  // 
  JSONObject aVal = (JSONObject) arr.get(j);
  // hash key pid 
  String pidStr = "";
  Object pidObj = aVal.get(pid);
  if (aVal.get(pid) != null) {
  pidStr = aVal.get(pid).toString();
  }
  JSONObject hashVP = (JSONObject) hash.get(pidStr);
  // pid , , 
  if (hashVP != null) {
  // child 
  if (hashVP.get(child) != null) {
   JSONArray ch = (JSONArray) hashVP.get(child);
   ch.add(aVal);
   hashVP.put(child, ch);
  } else {
   JSONArray ch = new JSONArray();
   ch.add(aVal);
   hashVP.put(child, ch);
  }
  } else {
  r.add(aVal);
  }
 }
 return r;
 }

public static void main(String[] args){
 List<Map<String,Object>> data = new ArrayList<>();
 Map<String,Object> map = new HashMap<>();
 map.put("id",1);
 map.put("pid",0);
 map.put("name"," ");
 data.add(map);
 Map<String,Object> map2 = new HashMap<>();
 map2.put("id",2);
 map2.put("pid",1);
 map2.put("name"," ");
 data.add(map2);
 Map<String,Object> map3 = new HashMap<>();
 map3.put("id",3);
 map3.put("pid",2);
 map3.put("name"," ");
 data.add(map3);
 Map<String,Object> map4 = new HashMap<>();
 map4.put("id",4);
 map4.put("pid",0);
 map4.put("name"," ");
 data.add(map4);
 Map<String,Object> map5 = new HashMap<>();
 map5.put("id",5);
 map5.put("pid",4);
 map5.put("name"," ");
 data.add(map5);
 System.out.println(JSON.toJSONString(data));
 JSONArray result = 
 listToTree(JSONArray.parseArray(JSON.toJSONString(data)),"id","pid","children");
 System.out.println(JSON.toJSONString(result));
}
이상의 이java 백엔드에서 데이터를 트리로 변환하고map은 json 트리를 생성하여 백엔드(백엔드 변환)로 되돌려주는 것이 바로 편집자가 여러분에게 공유한 모든 내용입니다. 여러분에게 참고가 되고 저희를 많이 사랑해 주십시오.

좋은 웹페이지 즐겨찾기