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 로 갈아타게 되었다.

번호 제목 글쓴이 날짜 조회 수
343 어떤 multi-part 설정도 제공되지 않았기 때문에, part들을 처리할 수 없습니다. file 황제낙엽 2023.08.23 891
342 (Bard) the request was rejected because no multipart boundary was found file 황제낙엽 2023.08.23 337
341 (Bard) multipart/form-data 요청 처리를 위한 MultipartHttpServletRequest file 황제낙엽 2023.08.21 210
» [JsonNode] depth 가 여러 단계인 json data 내부를 조회하는 java code 예제 (from Bard) file 황제낙엽 2023.08.09 585
339 JPA 개요 황제낙엽 2023.07.25 272
338 javax.mail 샘플 몇가지 (테스트 수행전) 황제낙엽 2023.06.26 570
337 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from naver / 테스트 성공) file 황제낙엽 2023.06.24 559
336 java 프로그램으로 회원가입용 인증 메일을 보내는 방법 (from bing / 테스트 실패) [1] 황제낙엽 2023.06.23 590
335 base64 encode, decode 황제낙엽 2023.06.12 288
334 BASE64Encoder, BASE64Decoder 의 deprecated 황제낙엽 2023.06.12 506
333 문자의 ASCII 값 테이블 - String.charAt() file 황제낙엽 2023.03.28 471
332 java로 알파벳 대소문자를 랜덤으로 조합하는 코드 만들어줘 (ChatGPT) 황제낙엽 2023.03.28 285
331 ajax 로 post 데이터를 servlet 으로 전달 받기 (with nexacro) [1] secret 황제낙엽 2023.02.26 0
330 구글 클라우드 비전 API 사용하기 (Google Cloud Vision API) 황제낙엽 2023.02.22 290
329 람다식(Lambda Expressions in Java) file 황제낙엽 2022.12.03 753
328 ConcurrentLinkedQueue와 LinkedBlockingQueue 황제낙엽 2022.04.06 500
327 java.util.Queue file 황제낙엽 2022.04.06 7749
326 숫자형 클래스 BigInterger (int, long 범위 초과) 황제낙엽 2022.01.16 807
325 LocalDate.now() 오늘 날짜 황제낙엽 2022.01.16 323
324 HttpServletRequest, HttpServletResponse, JSONObject, POST 황제낙엽 2022.01.12 388