JSON 형식으로 쓰여진 String을 Java 객체로 변환하려면 어떻게 해야 할까?
JSON 라이브러리를 사용하면 된다.
Java에는 대표적으로 Jackson, Gson 등의 JSON 라이브러리들이 있다.
의존성 추가
dependencies {
// 다른 의존성들
implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.5' // 적절한 버전 사용
}
구현
import com.fasterxml.jackson.databind.ObjectMapper;
public record JsonToJava() {
private static final ObjectMapper MAPPER = new ObjectMapper();
public static JsonToJava of(String jsonString) {
if (StringUtils.isEmpty(jsonString)) {
return null;
}
try {
return MAPPER.readValue(jsonString, JsonToJava.class);
} catch (JsonProcessingException e) {
log.warn("", e);
}
return null;
}
}
여기서 JsonProcessingException은 무엇일까?
'JsonProcessingException'는 Jackson 라이브러리에서 발생하는 예외 클래스다.
JSON 문자열 <->Java 객체 변환 작업에서 발생할 수 있는 예외를 나타내는 클래스다.
예외 예제
public class JsonProcessingExceptionExample {
public static void main(String[] args) {
// 유효하지 않은 JSON 형식 -> JsonProcessingException
String jsonProcessingExceptionString = "{\"prdNo\": \"1\", \"productName\": \"value\",}";
// String에 있는 필드가 Java 객체에 존재하지 않음 -> UnrecognizedPropertyException
String unrecognizedPropertyExceptionString = "{\"prdNoo\": \"1\"}"
}
public record Product(String prdNo,
String productName){}
}
'Language > Java' 카테고리의 다른 글
Java - ThreadLocal (0) | 2022.07.02 |
---|---|
Java - Record란? (0) | 2022.06.24 |
Wrapper Class vs Primitive Type (0) | 2022.03.29 |
Java - 스트림으로 데이터 수집 (0) | 2022.03.03 |
Java - 스트림 활용 (0) | 2022.03.03 |