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};