sitelink1  
sitelink2  
sitelink3  
sitelink4  
sitelink5  
sitelink6  

depth 가 여러 단계인 json 데이터를 다루던중 내부를 조회하는데 코드가 너무나 길어져서 bard 에게 물어보았다.

그리고 똑똑한 bard 는 JsonNode 라는 클래스를 알려주며 내게 만족스러운 답을 주었다.

 

다음은 depth가 여러 단계인 JSON 데이터 내부를 조회하는 Java 코드 예제입니다.

Java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDemo {

    public static void main(String[] args) throws JsonProcessingException {
        // JSON 데이터를 읽습니다.
        String json = "{\"name\":\"John Doe\",\"age\":30,\"address\":{\"city\":\"Seoul\",\"country\":\"Korea\"}}";내

        // JSON 데이터를 JSON 노드로 변환합니다.
        ObjectMapper mapper = new ObjectMapper();
        JsonNode root = mapper.readTree(json);

        // JSON 노드의 속성을 출력합니다.
        System.out.println(root.get("name")); // John Doe
        System.out.println(root.get("age")); // 30
        System.out.println(root.get("address").get("city")); // Seoul
        System.out.println(root.get("address").get("country")); // Korea
    }
}

 

원래 작성하던 코드는

 

2023-08-09 오전 8-47-28.png

 

위와 같았는데

bard 가 알려준 코드대로 만들어보니

 

2023-08-09 오전 8-47-50.png

 

method chaining 방식이어서 코드 작성도 편리하고 가독성이 매우 좋아졌다.

꽤 오랫동안 JSONObject 를 다뤘는데 bard 덕분에 이제서야 JsonNode 로 갈아타게 되었다.

번호 제목 글쓴이 날짜 조회 수
173 google-auth-library-oauth2-http 라이브러리 다운로드 황제낙엽 2023.11.19 1427
172 firebase-admin-java 라이브러리 다운로드 (firebase admin sdk library) 황제낙엽 2023.11.19 575
171 Enum 활용 (개인블로그, Effective Java) file 황제낙엽 2023.11.02 523
170 Enum 활용 (우아한기술블로그) file 황제낙엽 2023.11.02 514
» [JsonNode] depth 가 여러 단계인 json data 내부를 조회하는 java code 예제 (from Bard) file 황제낙엽 2023.08.09 585
168 JPA 개요 황제낙엽 2023.07.25 272
167 javax.mail 샘플 몇가지 (테스트 수행전) 황제낙엽 2023.06.26 570
166 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from naver / 테스트 성공) file 황제낙엽 2023.06.24 560
165 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from bing / 테스트 실패) [1] 황제낙엽 2023.06.23 592
164 base64 encode, decode 황제낙엽 2023.06.12 288
163 BASE64Encoder, BASE64Decoder 의 deprecated 황제낙엽 2023.06.12 506
162 java로 알파벳 대소문자를 랜덤으로 조합하는 코드 만들어줘 (ChatGPT) 황제낙엽 2023.03.28 285
161 구글 클라우드 비전 API 사용하기 (Google Cloud Vision API) 황제낙엽 2023.02.22 291
160 람다식(Lambda Expressions in Java) file 황제낙엽 2022.12.03 753
159 ConcurrentLinkedQueue와 LinkedBlockingQueue 황제낙엽 2022.04.06 500
158 java.util.Queue file 황제낙엽 2022.04.06 7750
157 HP-UX, IBM-AIX 황제낙엽 2021.06.23 648
156 람다(Lambda)와 함수형 인터페이스 황제낙엽 2021.05.10 569
155 for, while 등의 loop구문에서 sleep하기 황제낙엽 2020.12.04 479
154 미디어 파일의 metadata를 읽자 (metadata-extractor) file 황제낙엽 2020.08.30 1047