아이 폰 백 스테이지 - 하 이 버 네 이 트JSon 필터 가 순환 하 는 필드

이것 은 내 가 쓴 것 이 아니 라 copy 의 주소 입 니 다.http://java20100406.iteye.com/blog/946580
= = = = = = = = = = = = = = = = = = = = = =
Hibernate many - to - one 양 방향 연결 에서 many 측 을 조회 할 때 one 측 데 이 터 를 추가 로 조회 합 니 다. 동시에 one 에 List < Many > 가 있 고 Many 중의 데 이 터 를 찾 습 니 다. 반복 되 며 결과 = > 가 끝 났 습 니 다. json 분석 이 실 패 했 습 니 다.
해결 방법, JSonConfig 를 통 해 필터 필드 설정 (setExcludes)
예 를 들 면:
**********===model===************

public class One {
	private int id;
	List<Many> manyList;
         ...
}

public class Many {
	private int id;
	private One one;
         ...
}

**********   daoImpl   ************

String HQLStr = "from Many";

**********   action   ************

JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes(new String[]{"manyList"});//    ,     
JSONArray jsonArr = new JSONArray();
jsonArr.add(tempList, jsonConfig);//tempList   Hibernate      

= = = = = = = = = = = = = = = = = = = = = =
본문 은 다음 과 같다.
JSonConfig 필 터 를 설정 하여 순환 을 일 으 킬 수 있 는 필드 를 걸 러 냅 니 다. 그렇지 않 으 면 hibenate 의 원칙 에 따라 끊임없이 직렬 조 회 를 합 니 다.
*************************************Action******************************************************
1. 상대.
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes( new String[]{ "creator", "module", "testPoints","testProcesses","highLevelRequirements","lowLevelRequirements"} );
String result = JSONobject. fromObject (testCase 대상, jsonConfig). toString ();
2. List 배열
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes( new String[]{ "creator", "module", "testPoints","testProcesses","highLevelRequirements","lowLevelRequirements"} );
JSONarray lineitemArray = JSONarray. fromObject (testCases 집합 목록, jsonConfig);
String result = JSONArray.fromObject(lineitemArray).toString();
3. 맵 대상
Map map = new HashMap();
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setExcludes( new String[]{ "creator", "module", "testPoints","testProcesses","highLevelRequirements","lowLevelRequirements"} );
JSONarray lineitemArray = JSONarray. fromObject (testCases 집합 목록, jsonConfig);
map.put("testCases", lineitemArray);
String result = JSONobject. fromObject (map 대상). toString ();
************************************struts.xml*******************************************************

..........
       
           
                result
           

       

..........

***************************************javascript****************************************************
1. 상대.
  $.ajax({
   type: "POST",
   url: "ajax/oneAjax.html",
            dataType: "json",
   data: "targetId=" + val ,
   success: function(result){
    var json=eval("("+ result + ")");
    $('#selectedResult').append(  "
"+ json.id + " : " + json.name +"
"  );
   }
  });
2. List 배열
  $.ajax({
    type: "POST",
    url: "ajax/childrenAjax.html",
    dataType: "json",
    data: url,
    error: function(){
     alert("");
    },
    success: function(result){
      var org1=eval("("+ result + ")"); 
      for(var i=0;i       menuTree.add(org1[i].id,ID,org1[i].id + " : " + org1[i].name);  
      }  
    }
  });
3. 맵 대상
  $.ajax({
   type: "POST",
   url: "ajax/associationAjax.html",
            dataType: "json",
   data: "associationObjectIds=" + idString () ,
   success: function(result){
    var json=eval("("+ result + ")");
    var dataItems = json.dataItems;
    var testCases = json.testCases;
    var sysReqs = json.sysReqs;
    var hlrReqs = json.hlrReqs;
    var llrReqs = json.llrReqs;
    var funcInfos = json.funcInfos;
    .....................................................
    if (testCases.length != 0){
             $('#testCaseDiv').empty();
             var url = "";
             for(var i =0;i               url = url + "
";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "" + testCases[i].creatorName + ""; 
               url = url + "";
               url = url + " ";
               url = url + "";
               url = url + "
";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "";
               url = url + "
";
               url = url + testCases[i].id + " ";
               url = url + "
" + testCases[i].name + " 
" + testCases[i].description + "";
               url = url + "
";
               url = url + "
"; 
             }
             $('#testCaseDiv').append(url);
       }
    ...........................................
   }
  });

좋은 웹페이지 즐겨찾기