관리 메뉴

ふたりで

List<VO> 형식의 jsondata 를 jackson.map.ObjectMapper.convertValue 를 사용하여 파싱 하기 본문

JAVA

List<VO> 형식의 jsondata 를 jackson.map.ObjectMapper.convertValue 를 사용하여 파싱 하기

graykang 2024. 6. 18. 13:57
728x90
반응형
SMALL

# 먼저 라이브러리 설정.

		<dependency>
			<groupId>org.codehaus.jackson</groupId>
			<artifactId>jackson-mapper-asl</artifactId>
			<version>1.9.13</version>
		</dependency>

 

# 사용자 화면에서 아래와 같이 jsondata를 생성해  ajax로 서버에 전송한다. 

var menuArrayObj = new Array();//전송용 파라메터 객체
$('.js_check').each(function(){//체크여부에 따른 값 설정
    if($(this).is(':checked') == true){
        var menuInfo = new Object();
        menuInfo.pmb_martcode=martCode;
        menuInfo.pmb_deviceid=deviceid;
        menuInfo.pmb_qrcode=qrcode;
        menuInfo.pmb_menuid=$(this).data('menuid');
        menuInfo.pmb_menustate=parseInt(1);
        menuArrayObj.push(menuInfo);
    }else{
        var menuInfo = new Object();
        menuInfo.pmb_martcode=martCode;
        menuInfo.pmb_deviceid=deviceid;
        menuInfo.pmb_qrcode=qrcode;
        menuInfo.pmb_menuid=$(this).data('menuid');
        menuInfo.pmb_menustate=parseInt(0);
        menuArrayObj.push(menuInfo);
    }
});
$.ajax({
    type : "POST",
    url : ctx + "/user/saveMenuBlock.json",
    data : JSON.stringify(menuArrayObj),
    async: false,
    contentType: "application/json",
    beforeSend : function(xhr){//ajax호출 중 처리
    },
    success : function(data) {//ajax호출 성공시 후처리
    },
    error : function(request, status, error) {//ajax호출 실패시 후처리
     }
});

 

 

# 파싱 로직

	@Override
	public JSONObject saveMenuPro(List<MenuInfoVO> jsondata) {
	    JSONObject responseJson = new JSONObject();
	    ObjectMapper mapper = new ObjectMapper();
	    
	    try {
	        if(jsondata != null && !jsondata.isEmpty()) {
	            List<MenuInfoVO> convertedList = mapper.convertValue(jsondata, new TypeReference<List<MenuInfoVO>>(){});
	            
	            for(MenuInfoVO menuVO : convertedList) {
	                if(menuVO.getPmb_menustate() == 0) {
	                    // Delete
	                	handDao.deleteMenuBlock(menuVO);
	                } else {
	                    // Save
	                	handDao.insertOrUpdateMenuBlock(menuVO);
	                }
	            }
	            responseJson.put("msg", "메뉴제한 설정을 저장하였습니다.");
	        }
	    } catch (Exception e) {
	        responseJson.put("msg", "메뉴제한 설정 중 오류가 발생하였습니다.");
	        logger.error("mpos-admin", "savePdaMenuBlockPro_메뉴제한_저장or삭제_error", e);
	        e.printStackTrace();
	    }
	    
	    return responseJson;
	}
728x90
반응형
LIST
Comments