Cycle Exception, PO在json序列化时发生死循环

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方法。
}

猜你喜欢

转载自bai-du-bai-du123.iteye.com/blog/1703395