Cycle Exception, PO가 json 시리얼화할 때 데드사이클 발생

2442 단어 예외 처리
Exception in thread "main"net.ssk.json.JSONException: There is a cycle in the hierarchy!
pojo에서 대상에 사순환 문제가 존재하는데 해결 방법:
방법 1: VO 클래스를 만듭니다.
     public String findAllSingleTest(){// 、
    	 List mapSmallList = mapSmallService.getAll();
    	 return ajaxByObjectListAndMap(mapSmallVO.formatToVo(mapSmallList), null);
     }

VO 클래스(예 보기):

package net.ssk.vo;

public class MapSmallVO {
	private String id;
	private String username;
	
	public static List<MapSmallVO> formatToVo( List<MapSmall> mapSmallList){
		Logger log = Logger.getLogger(MapSmallVO.class);
		try {
			if(mapSmallList != null && mapSmallList.size() > 0){
				List<MapSmallVO> voSet = new ArrayList<MapSmallVO>();
				for(MapSmall m : mapSmallList){
						MapSmallVO vo = new MapSmallVO();
						vo.setId(m.getMember().getId());						                                                                         vo.setUsername(m.getMember().getUsername());
						voSet.add(vo);
				}
				return voSet;
			}
		} catch (Exception e) {
			log.error(e);
			e.printStackTrace();
		}
		return null;
	}
	// ( ) get、set 。
	
}


방법2: 필요한 json 서열화 속성을 포함하는 클래스를 다시 만듭니다.

     public String findAllSingle(){	
		List<MapSmall> mapsmalllist = mapSmallService.getAll();
		List<MapSmallEntity> currentMapSmallEntityList = new ArrayList<MapSmallEntity>();
		for (MapSmall mapsmall : mapsmalllist) {
			MapSmallEntity mapsmallEntity = MapSmallEntity.changeMapSamllToAndroidEntity(mapsmall);
			currentMapSmallEntityList.add(mapsmallEntity);
		 }
		 return ajaxByObjectListAndMap(currentMapSmallEntityList, null);
	}

//필요한 json 서열화 속성을 포함하는 클래스(예제).

package net.ssk.entity;

public class MapSmallEntity {
	private String id;       		//id 
        
public static MapSmallEntity changeMapSamllToAndroidEntity(MapSmall mapsmall){
		MapSmallEntity mapsmallEntity = new MapSmallEntity();
		mapsmallEntity.setId(mapsmall.getId());
		return mapsmallEntity;
	}
        // ( ) get、set 。
}


좋은 웹페이지 즐겨찾기