Jack에서 제공하는 ObjectMapper
import com.fasterxml.jackson.databind.ObjectMapper;
Java 클래스의 내용을 확인하거나 내용물의 Parsing 과정에서 필요함.
1. 주요기능
Java Object -> serialize -> Json (writeValue() 메서드 필요)
Json -> Deserialize -> Java Object (readValue() 메서드 필요)
# serialize
직렬화
java 객체에서 -> json 객체로
public class ObjMaper {
public static void main(String[] args) {
ObjectMapper objMaper = new ObjectMapper();
// Java Object -> Json
Man man = new Man("zone", 34, "seoul");
try {
objMaper.writeValue(new File("src/man.json"), man);
} catch (IOException e) {
e.printStackTrace();
}
}
}
# 결과 :
해당 파일을 열어보면 Java 객체로 넣어줬던 값들이 JSON 형태로 잘 저장 되어 있다.
# src/man.json
{"name":"zone","age":34,"address":"seoul"}
# Deserialize
역직렬화
json -> java 객체로
public class ObjMaper {
public static void main(String[] args) {
ObjectMapper objMaper = new ObjectMapper();
// JSON -> Java Object
String json = "{\"name\":\"zone\",\"age\":34,\"adress'":\"seoul\"}";
try {
Man deserializedMan = objMaper.readValue(json, Man.class);
System.out.println(deserializedMan);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
}
# 결과 :
Man(name=zone, age=34, adress=seoul)
위와 같이 JSON 형태의 문자열 or 객체와 역직렬화 시킬 클래스를 넣어주면 됨.
Man -> Man.class
'개발 > JAVA' 카테고리의 다른 글
[Java] 제공되는 타입이 일치하지 않을 때, 비 static 필드는 static 컨텍스트에서 참조할 수 없습니다. 해결법 (0) | 2023.01.18 |
---|---|
[Intellij] 실행 가능한 jar파일 만들기 (0) | 2022.12.23 |
[Java] bufferReader.mark, reset, markSupported 사용법 및 사용 이유 (0) | 2022.12.13 |
[JAVA] inputStream, InputStreamReader, bufferReader/Writer 총정리 (0) | 2022.12.13 |
[JAVA] new BufferedReader(new InputStreamReader(conn.getInputStream())); (0) | 2022.12.13 |