[스프링 부트] Object Mapper

2024. 6. 25. 21:35·Springboot
@SpringBootTest
class RestApiApplicationTests {

	@Autowired
	private ObjectMapper objectMapper;

	@Test
	void contextLoads() throws JsonProcessingException {
		var user = new UserRequest();
		user.setUserName("홍길동");
		user.setUserAge(10);
		user.setEmail("hong@gmail.com");
		user.setIsKorean(true);

		var json =objectMapper.writeValueAsString(user); //직렬화 
		System.out.println(json);

		var dto=objectMapper.readValue(json, UserRequest.class); //역직렬화
		System.out.println(dto);
	}

}

 

ObjectMapper의 역활 

responsebody로 json을 받을 때 dto로 역직렬화를 해주고,

json으로 응답을 내릴 때 직렬화를 해준다. 

 

ObjectMapper는 변수에 직렬화를 할 때 변수에 매칭되는 것이 아니라 

get 이름이 붙은 메소드에 매칭이 된다.

 

반대로 역직렬화를 할 때에는 

set 이름이 붙은 메소드에 매칭이 된다.

 

example: getName, getHumanAge

또한 json이 출력된 것을 확인하면 

name, human_age 와 같이 스네이크 형식으로 바뀌어서 출력된 것을 확인할 수 있다. 

 

따라서 getUser()와 같이 다른 get으로 시작하는 메소드를 선언하면 

직렬화가 될 때 다른 값을 받을 수 있다. 

이에 대한 해결책으론 @JsonIgnore 어노테이션을 붙여 json으로 사용하지 않겠다고 선언하면 된다. 

 

 

'Springboot' 카테고리의 다른 글

[스프링 부트] 페이지네이션 정보 응답 받기  (0) 2024.07.01
[스프링 부트] Entity 매핑 무한루프  (0) 2024.07.01
[스프링 부트] DispatcherSevlet의 역할  (0) 2024.06.29
스프링 부트2 (view 환경설정)  (0) 2024.06.21
스프링 부트1 (시작)  (0) 2024.06.21
'Springboot' 카테고리의 다른 글
  • [스프링 부트] Entity 매핑 무한루프
  • [스프링 부트] DispatcherSevlet의 역할
  • 스프링 부트2 (view 환경설정)
  • 스프링 부트1 (시작)
코딩 못하는 감자
코딩 못하는 감자
  • 코딩 못하는 감자
    코딩 못하는 감자의 기록
    코딩 못하는 감자
  • 전체
    오늘
    어제
    • 분류 전체보기 (91)
      • Kubernetes (10)
      • Github Action (1)
      • Docker, Container (3)
      • Springboot (26)
      • Baekjoon (4)
      • 명품 운영체제 (9)
      • 데이터베이스 (2)
      • JSP (3)
      • 안드로이드프로그래밍 (1)
      • 미니프로젝트 (1)
      • 용어정리 (0)
      • 소프트웨어공학 (3)
      • 운영체제 (2)
      • Flutter (0)
      • Git (1)
      • HTTP (0)
      • RAG (1)
      • Database (2)
      • FastAPI (1)
      • Elasticsearch (7)
      • Redis (0)
      • JPA (5)
      • Linux (1)
      • MCP (1)
  • 블로그 메뉴

    • 홈
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    엘라스틱서치 인덱스
    mcp #model context protocol #claude desktop #mcp claude연동 #claude 파일 시스템 연동
    Dockerfile
    응답 로그
    elasticsearch 커스텀분석기
    엘라스틱서치 인덱스 복사
    elasticsearch ngram
    fuzziness
    SpringBoot
    elasticsearch analyzer
  • hELLO· Designed By정상우.v4.10.3
코딩 못하는 감자
[스프링 부트] Object Mapper
상단으로

티스토리툴바