ObjectMapper

권권·2023년 7월 24일
0

Java Study🎇

목록 보기
5/7

objectMapper

ObjectMapper란 JSON 형식을 사용할 때, 응답들을 직렬화하고 요청들을 역직렬화 할 때 사용하는 기술이다

직렬화(Serialize)

데이터를 전송하거나 저장할 때, 바이트 문자열이어야하기 때문에 객체들을 문자열로 바꿔주는 것이다.

  • Object -> String
  • writeValue(), writeValueAsString

역직렬화(Deserialize)

데이터가 모두 전송된 이후, 수신측에서 다시 문자열을 기존의 객체로 만들어주는 것

  • String -> Object
  • readValue()

spring boot 의 경우 자체적으로 Jackson 라이브러리를 가지고 있고 그것을 통해서 Object <-> String 을 오고갈수 있게 하였다.

  • 이때 다뤄지는 객체의 생성자 이름에 get이 들어가지 않도록 해야한다.

예시 )

public class User {

	private String name;
    private int age;
    
    // 생성자
    public User(String name, int age) {
    	this.name = name;
        this.age = age;
    }
    
    public String getName() {
    	return name;
    }
    
    public String getAge() {
    	return age;
    }
}

위처럼 User 라는 클래스는 name과 age라는 필드를 가진다.

자바 객체를 JSON 으로 변경

ObjectMapper objectMapper = new ObjectMapper();
User user = new User("kwon", 29);

objectMapper.writeValue(new File("user.json"), user);
// 파일 출력
{"name":"kwon", "age" : "29"}

// 문자열 출력
String userAsString = objectMapper.writeValueAsString(user);
{"name":"kwon", "age" : "29"}

JSON을 자바객체로 변경


// String 에서 Object로
String json = "{\"name\":\"kwon\", \"age\" : \"29\"}"
User user = objectMapper.readValue(json, User.class)

// JSON File to Object
User user = objectMapper.readValue(new File("user.json"), User.class);

// JSON URL to Object
User user = objectMapper.readValue(new URL("file:user.json"), User.class);

자바 객체를 String으로 변경하여 uri의 content에 넘기는 작업을 하다 ObjectMapper 가 보여 정리하였다.

출처

profile
안녕하세요

0개의 댓글