[Java] JsonArry 형태의 문자열을 List<VO>객체로 변환하기

2023. 10. 12. 18:00·Java

1. ajax 에서 컨트롤러로 JsonArry 보내기

 

projectInfo =  new Array();
		
for(var i=0; i < day; i++){
	projectInfo.push({
		"userId": 'test01',
		"workDate": (year+month+(i+1)),
		"activityCode": datagrid1.getCellData(2,6),
		"activityDetailCode": (datagrid1.getCellData(2,7)),
		"compProjectCode": value[0].data.compProjectCode,
		"workMonth": month,
		"workYear": year,
		"manHour": datagrid2.getCellData(2,i),
		"isConfirmed": 0
	});
}		
		
$.ajax({
	url : "/mhtaskmgnt/userinput/save",
  	type : "POST",
   	traditional: true,
   	data: {"projectInfo":JSON.stringify(projectInfo)},
   	dataType : 'json',
   	async : false
});

projectInfo는 자바스크립트로 만든 배열이다

ajax를 통해 컨트롤러로 데이터를 보낼때는 Json Data로 변환해서 보내줘야 한다

 

JSON.stringify(projectInfo)를 사용하면 Json Array 객체가 만들어지기 때문에

traditional: true 옵션을 반드시 붙여줘야 한다

 

2. 컨트롤러에서 JsonArray 받기

화면에서 ajax를 통해 보낸 JsonArray 객체는 String으로 받아야 한다

	@ResponseBody
	@RequestMapping("save")
	public void save(HttpSession session, String projectInfo) {
							

	}

들어오는 데이터를 확인하기 위해 디버깅을 통해 값을 찍어보면

projectInfo에 데이터가 문자열로 잘 들어온 것을 확인할 수 있다.

 

3. 문자열을 List객체로 변환하기

내가 받아온 데이터는 문자열이기 때문에 아무런 역할도 할 수가 없다

따라서 이 문자열을 List객체로 저장해야한다

이미 만들어놓은 PersonnelMhVo 형식으로 List객체를 만들어 값을 저장한다

@ResponseBody
@RequestMapping("save")
public void save(HttpSession session, String projectInfo) {
							
	Gson gson = new Gson();
		
	@SuppressWarnings("serial")
	List<PersonnelMhVO> mhData = gson.fromJson(projectInfo, new TypeToken<ArrayList<PersonnelMhVO>>(){}.getType());
		
	System.out.println(mhData);
    
    for(int i=0; i<mhData.size(); i++) {
			try {
				userInputService.insertPersonnelMH(mhData.get(i));
			} catch (Exception e) {
				log.error("get matcd failed");
				resultCode = "fail";
			}
	}	
    
}

Gson을 사용해 쉽게 변환할 수 있다

 

디버깅으로 값을 찍어보면

값이 들어온 것을 확인할 수 있다

저작자표시 (새창열림)

'Java' 카테고리의 다른 글

[Java] 객체지향 프로그래밍 - 오버라이딩(overriding)  (0) 2024.04.05
[Java] 객체 지향 프로그래밍 - 상속  (0) 2024.04.03
[Java] Optional이란?  (0) 2023.09.04
[JAVA] 자바11 설치 / 환경변수 설정 (Window11)  (3) 2023.07.31
[JAVA] 입출력 스트림(자바I/O 스트림)  (0) 2022.02.13
'Java' 카테고리의 다른 글
  • [Java] 객체지향 프로그래밍 - 오버라이딩(overriding)
  • [Java] 객체 지향 프로그래밍 - 상속
  • [Java] Optional이란?
  • [JAVA] 자바11 설치 / 환경변수 설정 (Window11)
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Web (1)
        • Web (1)
        • HTTP (0)
      • Java (25)
        • JVM (0)
      • Spring (9)
      • AWS (0)
      • Language (4)
        • Java Script (3)
        • Type Srcipt (1)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (20)
        • JSP (0)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
      • 회고록 (0)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    스프링부트
    강의 후기
    데이터베이스 강의
    csr과ssr의 차이
    SQL강의 추천
    java의 정석
    CSR
    과학기술인 등록번호 발급
    Java
    Next.js
    인프런
    SSR
    springboot
    강의후기
    Next.js 필요성
    과학기술인 등록
    김영한
    프론트엔드
    중복제거
    자바스크립트set
    sql강의
    csrvsssr
    과학기술인번호 조회
    javascript
    백엔드
    Spring
    과학기술인 번호 발급
    과학기술인등록번호 조회
    React
    React Next.js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
[Java] JsonArry 형태의 문자열을 List<VO>객체로 변환하기
상단으로

티스토리툴바