JSON 정리✍

HD.Y·2023년 11월 26일
0

한화시스템 BEYOND SW

목록 보기
19/58
post-thumbnail

JSON(JavaScript Object Notation) 이란 ❓

  • "키" 와 "값" 의 쌍으로 이루어진 데이터를 쉽게 교환하고 저장하기 위한 텍스트 기반의 데이터 교환 표준이다.

  • JSON 의 특징
    1) 서버와 클라이언트 간의 교류에서 일반적으로 많이 사용된다.
    2) 자바스크립트 객체 표기법과 아주 유사하다.
    3) 자바스크립트를 이용하여 JSON 형식의 문서를 쉽게 자바스크립트 객체로
      변환할 수 있다.
    4) JSON 문서 형식은 자바스크립트 객체의 형식을 기반으로 만들어졌다.
    5) 자바스크립트의 문법과 굉장히 유사하지만 텍스트 형식일 뿐이다.
    6) 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다.
    7) 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를
      다룰 수 있는 라이브러리를 제공한다.

  • JSON을 사용하는 이유 ?
    : 네트워크를 사용하는 데이터 통신은 데이터를 byte 형태로 전달하는데, 서버와
      클라이언트 또는 애플리케이션에서 처리할 데이터를 주고받을 때 쓰는 자료 형식 중
      대표적인 것이 "XML" 과 "JSON" 이다.

    : 즉, 클라이언트의 요청이 있으면 프론트엔드 담당자와 백엔드 담당자 간 데이터를 주고
      받아야 하는데 그 때 사용하는 것이다.

    : 특히, "JSON" 은 특정 언어에 종속되지 않고, "XML" 보다 최소한의 용량으로 데이터
      전송이 가능하기 때문에 XML 보다 많이 쓰이고 있다고 한다.


JSON 실습하기

  • 먼저 인텔리제이에서 새로운 프로젝트를 생성하는데, 이때 Build System : Gradle , Gradle DSL : Groovy 로 선택해준다.

  • Maven 레포 사이트 (https://mvnrepository.com/)에서 JSON 또는 JSON IN Java 를 검색하여 가장 1번째에 있는 파일을 다운받는다.
  • 클릭하면 나오는 창에서 Files 의 "View All" 클릭 후 "json-20231013-javadoc.jar" 파일을 다운로드 받는다.

  • 다운받은 파일을 "idae 폴더" 에 옮긴 뒤 아래 사진의 순번대로 차례로 실시하면 된다.

  • 그 다음 새로운 클래스를 만든 뒤, JSON 형식의 문자열을 가지고 와서 실행시켰을때, 아래와 같이 encoding x-windows-949 오류가 뜨는 것을 볼 수 있다.

  • 이것을 해결 하기 위해서 아래의 순서 대로 실시한다.
    1) "File" 의 "Settings" 를 클릭한 뒤 encoding 을 검색해준다.
    2) "File Encodings" 에서 Project Encoding 을 "UTF-8" 로 맞춰준다.


    3) "Console" 에서 `Default Encoding` 을 "UTF-8" 로 맞춰준다.

    4) "build" 를 검색하여 "Gradle" 에서 Build and run usingRun tests using
        "IntelliJ IDEA" 로 맞춰준다.


  • 위 처럼 하면 정상적으로 실행될 것이고, 이제부터 맵과 리스트로 구성되어 있는 JSON 형태를 하나씩 분리해가며 데이터를 뽑아보는 연습을 해보겠다. 💻

    1) JSON 문자열의 첫 시작이 " { " 로 시작하는데, 이것은 맵 형태라는 것이다. 따라서
        맵 형태로 먼저 만들어 주면 되는데, 이때 다운받은 JSON 라이브러리를 사용한다.
        JSONObject jsonObject = new JSONObject(json);

    2) 만든 맵 형태의 jsonObject 에서 값을 불러와 보는데, 맵형태에서 값을 불러올 때는
        키값을 통해 불러올 수 있다. 불러온 뒤 문자열로 변경해준다.
        String json2 = jsonObject.get("키값").toString();

    3) 불러온 문자열을 확인해보니 이번엔 " [ " 로 시작한다. 그러면 리스트 형태라는
        것이고, 문자열을 리스트에 다시 저장해서 불러온다.
        JSONArray jsonArrary = new JSONArray(json2);

    4) 저장한 리스트에서 값을 불러와 보는데, 리스트에서 값을 불러올 때는 인덱스 번호로
        불러온다.
        String json3 = jsonArrary.get(인덱스번호).toString();

    5) 이런 식으로, 맵과 리스트의 형태로 되어 있는 JSON 문자열을 하나씩 분리해 가며,
        문자열 안에 있는 값들을 출력하는 연습을 해보면 된다.


  • 다음으로, 혹시나 다른 프로젝트에서 작업중인 클래스를 실행 시켰을때, 한글깨짐 현상이 나올 수 있다. 이때 해결하는 방법으로 아래와 같이 하니 해결되었다.🧐

    1) ✅ Shift 를 2번 클릭하면 나오는 창에서 "vm" 검색 후 Edit Custom VM options
             을 클릭한다.


    2) ✅ 클릭하면 뜨는 창에 아래의 두 줄을 입력해 준다.
       -Dfile.encoding=UTF-8
       -Dconsole.encoding=UTF-8

    3) 인텔리제이를 다시 실행시킨 뒤 클래스를 Run 해보면 정상적으로 한글이 깨지지 않고
        출력될 것이다.


  • JSON 은 백엔드 개발자가 프론트엔드 개발자 또는 다른 개발자들과 데이터를 주고 받는데 가장 많이 사용되는 데이터 형식으로 실제 현업에서도 많이 쓰인다고 한다.

  • 따라서, JSON 형식의 문자열을 자유자재로 안에 있는 데이터들을 불러오고 할 수 있어야 하는데, 가장 중요한 것은 맵과 리스트의 값을 불러오는 형식이 다르다는 점을 이해하고, {[ 로 시작하는 문자열이 있을때 이 것이 맵이냐, 리스트냐를 잘 구분할 줄 알아야 하는 것 같다.

profile
Backend Developer

0개의 댓글