Notice
Recent Posts
Recent Comments
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

DeFacto-Standard IT

Object Serialization (JSON) (2) - jackson-databind# ObjectMapper Class 본문

SpringFramework/References

Object Serialization (JSON) (2) - jackson-databind# ObjectMapper Class

defacto standard 2018. 5. 3. 22:59

ObjectMapper Class의 readValue()를 사용하면 String Type의 값을 Object Type으로 변환할 수 있다.


단, 그 사용법이 조금 까다롭긴 하지만, 코드를 봤을 때 그 의도가 상당히 명확하다.


public class Main {
// throws Exceptions는 제외
public static void main(String[] args) {
String personString = "{\"age\":3, \"grade\":1, \"name\":\"ycp\", \"subName\":\"YCP\"}";

ObjectMapper mapper = new ObjectMapper();
Person p = mapper.readValue(personString.getBytes("UTF-8"), Person.class);

System.out.println(personString);
System.out.println(p);
}

}


personString의 경우 JSON 포맷의 String을 급조하다보니 저런식으로 만들게 되었다.


중요한 것은 ObjectMapper 객체를 사용하여 String을 Object로 변환하는 코드이다.


readValue의 첫 번째 인자 타입은 byte[] 이며, 변환하려는 String을 getBytes(String encode) 함수를 사용하여 해당 포맷으로 다룬다는 것을 명시하고, 두 번째 인자로는 어떤 클래스의 타입으로 변환할지를 그 메타 데이터를 넘기게 된다.


수행 결과는 다음과 같다.



이 때, 첫 번째 출력은 JSON Stirng이며, 두 번쨰 출력은 Person 객체를 출력한 내용이다.


Person객체에는 JSON String의 키 값과 동일한 이름의 필드가 존재해야 한다.



Comments