새소식

반응형
Java/Spring

Jackson 라이브러리 ObjectMapper(readValue, writeValueAsString)

  • -
반응형

ObjectMapper

JSON 형태의 데이터를 String 또는 다른형태로 변환하거나 다른 타입의 json 데이터를 Json 타입의 데이터로

변환할 때 많이 사용한다.

 

1. Object => String 

@Getter
@Setter
public class User {
    int seq;
    String name;
    String number;

    public User(int seq, String name, String number){
        this.seq = seq;
        this.name = name;
        this.number = number;
    }
}

위와 같이 User 라는 Object 가 존재한다. 위 Object를 생성하면서 값을 지정하고 String 형 데이터로 변환해본다.

ObjectMapper om = new ObjectMapper();
User user = new User(1, "obo", "0212344567");

String text = om.writeValueAsString(user);

 

결과

{"seq":1, "name":"obo", "number":"0212344567"}

 

2. String 형 JSON => Object

@Getter
@Setter
public class User {
    int seq;
    String name;
    String number;

    public User(int seq, String name, String number){
        this.seq = seq;
        this.name = name;
        this.number = number;
    }
}

위와 같은 Java Object 가 있고 아래의 String 형 json 형태가 있다. String 형 json 데이터를 Java Object 로 변환해본다.

String json = "{\"seq\":1, \"name\":\"obo\", \"number\":\"0212344567\"";

ObjectMapper om = new ObjectMapper();

User user = om.readValue(json, User.class);

 

결과

{"seq":1, "name":"obo", "number":"0212344567"}

 

3. Map => String 형 JSON

ObjectMapper om = new ObjectMapper();

HashMap<String, String> map = new HashMap<String, String>();
map.put("name", "obo");
map.put("number", "0212344567");

String json = om.writeValueAsString(map);

System.out.println("map : "+map);
System.out.println("map json : "+json);

결과

{name=obo, number=0212344567}; // map
{"name":"obo", "number":"0212344567"} //string 형 json

 

4. String 형 JSON => Map

String json = "{\"seq\":\"1\", \"name\":\"obo\", \"number\":\"0212344567\"";

ObjectMapper om = new ObjectMapper();

HashMap<String, String> map = HashMap<String, String>();

map = om.readValue(json, new TypeReference<HashMap<String, String>>() {});

System.out.println("map : "+map);

결과

{seq=1,name=obo,number=0212344567};

 

반응형

'Java > Spring' 카테고리의 다른 글

lombok 설정  (0) 2022.10.26
Spring Boot Thymeleaf Dialect Layout 설정  (0) 2022.10.06
Lombok @Builder  (0) 2022.09.14
JAR, WAR 차이점 및 특징  (0) 2022.09.13
File.separator  (0) 2022.08.24
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.