ObjectMapper 사용시 getter의 중요성

김성인·2023년 12월 16일
0

🍃 SpringBoot

목록 보기
18/18

ObjectMapper 클래스를 이용해서 객체를 매핑할때, 매핑하고자 하는 객체의 필드가 getter 가 없으면 해당 값은 매핑되지 않음.. (수동 매핑 필요)

MemberDTO.Request newUser = new MemberDTO.Request("테스트 유저", "test@email.com", "password");

        // response
        Set<AuthorityDto> authorityDtos = new HashSet<>();
        authorityDtos.add(new AuthorityDto("ROLE_TEST"));
        MemberDTO.Response newUserRes = new MemberDTO.Response(newUser.getName(), newUser.getEmail(), authorityDtos);

        when(memberService.create(newUser)).thenReturn(newUserRes);

        ObjectMapper objectMapper = new ObjectMapper();
        String requestBody = objectMapper.writeValueAsString(newUser);

수동 매핑

// ObjectMapper를 직접 사용하여 JSON 문자열을 생성
    ObjectMapper objectMapper = new ObjectMapper();
    ObjectNode requestBodyNode = objectMapper.createObjectNode();
    requestBodyNode.put("name", newUser.getName());
    requestBodyNode.put("email", newUser.getEmail());
    requestBodyNode.put("password", newUser.getPassword());
    String requestBody = requestBodyNode.toString();

0개의 댓글