본문 바로가기
Language/Java

Java - JSON 파싱

by 밍상 2023. 8. 3.

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