💻 공부 기록/☕ Java
Java | ObjectMapper
MVMT
2023. 1. 17. 10:00
개요
Kakao REST API 를 사용하던 중 Json 형태로 값을 다루는 과정에서 ObjectMapper 를 알게 되었다.
Java 로 Parsing 하는 과정을 배운다.
- "Java Object" =Serialize=> "JSON"
- "JSON" =Deserialize=> "Java Object"
Maven 설정
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.12.3</version>
</dependency>
예시 | User Object
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 int getAge() {
return age;
}
}
예시 | Convert "Java Object" to "JSON
public class TestConvert {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
ObjectMapper objectMapper = new ObjectMapper();
User user = new User("Ryan", 30);
objectMapper.writeValue(new File("user.json"), user);
// 파일 출력: user.json
// {"name":"Ryan","age":30}
// 문자열 출력
String userAsString = objectMapper.writeValueAsString(user);
// {"name":"Ryan","age":30}
}
}
예시 | Convert "JSON" to "Java Object"
더보기
// String to Object
String json = "{ \"name\" : \"Ryan\", \"age\" : 30 }";
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);
예시 | Convert "JSON" to "Jackson JsonNode"
더보기
String json = "{ \"name\" : \"Ryan\", \"age\" : 30 }";
JsonNode jsonNode = objectMapper.readTree(json);
String name = jsonNode.get("name").asText();// Ryan
int age = jsonNode.get("age").asInt();// 30
예시 | Convert "JSON Array String" to "Java List"
더보기
String jsonArr = "[{\"name\":\"Ryan\",\"age\":30},{\"name\":\"Jake\",\"age\":20}]";
List<User> users = objectMapper.readValue(jsonArr, new TypeReference<>() {});
예시 | Convert "JSON String" to "Java Map"
더보기
String jsonArr = "{\"name\":\"Ryan\",\"age\":30}";
Map<String, Object> user = objectMapper.readValue(jsonArr, new TypeReference<>() {
});
일단 ObjectMapper 를 다루는 방법에 대해서 알아보았다.
여유가 된다면 Custom Serializer or Deserializer 에 대해서도 정리해서 공부해보자.
출처 | RyanGomdoriPooh