json 회전 json 트리 구조

Restful 서비스를 쓸 때 모두 돌아가는 json 대상이기 때문에 이 대상들은 서로 관계가 있지만 잘 나타나지 않아서 페이지로 돌아갈 때 하나의 트리가 될 수 없다.반환된 json 열 데이터는 다음과 같습니다.
[{'belongsname':'','id'901,'isleaf': 0,'name':'XJBHX-2표 항목부','pid':'",'id': 901,'type':'}, {'belongsleaf':'isleaf': 02,'isleaf': 1,'name':'종합부(사무실)','pid':','pid':'':'",'type':'901, '{'isleaf': 901,'isleaf'isleaf': 0','name','name':'name':'name':'name':':','belongenenen'belongingingingingsle부/기술부), "pid": "901", "type": "}, {"belongsname","id": 904,"isleaf": 1,"name":"안질부","pid":"901","type": ""} {"belongsname": ","id": 905,"isleaf": 1,"name":"회계부","pid":"901","type":""}", "id": 905, "isleaf": ":"회계부":"":"회계부"", "pid"":"""pide":": "", "pid": "": "": 905, ","isleaf": 1": 1 "isleaf": 1 ": 1,"name ":"""":""""""", ","name ":"":": """:"",", ","type":": "중심 시험실", "pid": "901", "type": "}
우리가 프론트 데스크톱 인터페이스에서 필요로 하는 데이터는 다음과 같다.
["belongsname": ","id ": 901,"isleaf ": 0,"name ":"XJBHX-2 프로젝트 섹션 ","pid ":", "type": "children": [{"belongsname": ","id: 902, "isleaf"1,"name":"종합부(사무실)", "pid":"901", "type":"},"belongsname": "", ""id"": 903, ""isleaf"": 1, ""name"": "공공부(공학부/기술부)", "pid"":""901"",""type"":""}"{"belongsname": "", "id": 904, "isleaf": 1, "name": "안질부", "pid": "901", "type": ""},{"belongsname": "", "아이디": 905, "isleaf": 1, "name": "계재부", "pid": "901", "type": ""},"belongsname": "", ""id"": 906, ""isleaf"": 1, ""name"": ""물설부(물기부)"", ""pid"": ""901"", ""type"": ""},"{"belongsname": "", "id": 907, "isleaf": 1, "name": "중심 실험실", "pid": "901", "type": "}"]
어떻게 돌리지?예를 들면 다음과 같습니다.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
	pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
<script type="text/javascript">
	// json        
	function transData(a, idStr, pidStr, chindrenStr) {
		var r = [], hash = {}, id = idStr, pid = pidStr, children = chindrenStr, i = 0, j = 0, len = a.length;
		for (; i < len; i++) {
			hash[a[i][id]] = a[i];
		}
		for (; j < len; j++) {
			var aVal = a[j], hashVP = hash[aVal[pid]];
			if (hashVP) {
				!hashVP[children] && (hashVP[children] = []);
				hashVP[children].push(aVal);
			} else {
				r.push(aVal);
			}
		}
		return r;
	}
	
	//    
	function test() {
		//json 
		var jsonData = eval('[{"belongsname":"","id":901,"isleaf":0,"name":"XJBHX-2    ","pid":"","type":""},{"belongsname":"","id":902,"isleaf":1,"name":"   (   )","pid":"901","type":""},{"belongsname":"","id":903,"isleaf":1,"name":"   (   /   )","pid":"901","type":""},{"belongsname":"","id":904,"isleaf":1,"name":"   ","pid":"901","type":""},{"belongsname":"","id":905,"isleaf":1,"name":"   ","pid":"901","type":""},{"belongsname":"","id":906,"isleaf":1,"name":"   (   )","pid":"901","type":""},{"belongsname":"","id":907,"isleaf":1,"name":"     ","pid":"901","type":""}]');
		//     
		var jsonDataTree = transData(jsonData, 'id', 'pid', 'chindren');
		console.log(jsonDataTree);
	}
	//         
	window.onload = test;
</script>
</head>
</head>
<body>
</body>
</html>

요약:
처음에 시작했을 때 생각이 복잡해졌고 자신이 훑어보고 수동으로 json열을 스펠링하는 것을 생각했다. 인터넷은 우리가 먼저 하는 일을 영원히 하고 있다.

좋은 웹페이지 즐겨찾기