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

2023. 10. 12. 18:00·Language/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을 사용해 쉽게 변환할 수 있다

 

디버깅으로 값을 찍어보면

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

저작자표시

'Language > 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
'Language/Java' 카테고리의 다른 글
  • [Java] 객체지향 프로그래밍 - 오버라이딩(overriding)
  • [Java] 객체 지향 프로그래밍 - 상속
  • [Java] Optional이란?
  • [JAVA] 자바11 설치 / 환경변수 설정 (Window11)
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바