본문 바로가기

카테고리 없음

[Swift]JSON 제이슨 ? 재순이 ? 너는 뭐하는 친구니 ?

JSON이란 무엇인가 ? 영어 닉네임같다. ㅎ

 

Javascript Object Notation의 줄인말이며 타입은 Data이다.

JSON이 만들어진 목적은 변환기 같은역할로 사람에게도 보기좋고 컴퓨터에게도 보기좋게끔 변환하는 일종의 약속이다.

현재 내 컴퓨터 시스템내에있는 객체를 다른 컴퓨터에 사용하려고 할때

바로 전송을 할 수 가 없다.

왜 ? 

컴퓨터마다 데이터저장방식 ?이 다르기때문이다.

 

어떻게 ????

=> 다른컴퓨터 사이에서도 0과1을 바꾸고 하는 규칙이 있어야 옮길 수 있는데

이때 필요개발된 문법이 JSON이다.

 

자료형과 문법

 

  • 수(Number)
  • 문자열(String): 0개 이상의 유니코드 문자들의 연속. 문자열은 큰 따옴표(")로 구분하며 역슬래시 이스케이프 문법을 지원한다.
  • 참/거짓(Boolean): true 또는 false 값
  • 배열(Array): 0 이상의 임의의 종류의 값으로 이루어진 순서가 있는 리스트. 대괄호로 나타내며 요소는 쉼표로 구분한다.
  • 객체(Object): 순서가 없는 이름/값 쌍의 집합으로, 이름(키)이 문자열이다.
  • null: 빈 값으로, null을 사용한다.

 

 

{ } : 객체(딕셔너리)

[] : 배열

“ “ : 문자열

문자열 외 : 숫자

 

다음은 한 사람에 관한 정보를 갖는 JSON 객체이다.

키-값 쌍(이름:값)의 패턴으로 표현된다.

 

사용 예제)

1)

{
“이름” : “홍길동”,
“나이” : 150,
“성별” : “남”
}



2)

 {
    "이름": "홍길동",
    "나이": 25,
    "성별": "여",
    "주소": "서울특별시 양천구 목동",
    "특기": ["농구", "도술"],
    "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
    "회사": "경기 수원시 팔달구 우만동"
 }

장점

  • JSON은 텍스트로 이루어져 있으므로, 사람과 기계 모두 읽고 쓰기 쉽다.
  • 프로그래밍 언어와 플랫폼에 독립적이므로, 서로 다른 시스템간에 객체를 교환하기에 좋다.
  • 자바스크립트의 문법을 채용했기 때문에, 자바스크립트에서 eval 명령으로 곧바로 사용할 수 있다. 이런 특성은 자바스크립트를 자주 사용하는 웹 환경에서 유리하다. 그러나 실질적으로 eval 명령을 사용하면 외부에서 악성 코드가 유입될 수 있다. 모질라 파이어폭스 3.5, 인터넷 익스플로러 8, 오페라 10.5, 사파리구글 크롬 등 대부분의 최신 웹 브라우저는 JSON 전용 파서 기능을 내장하고 있으므로 이런 기능을 사용하는 것이 더 안전할 뿐만 아니라 빠른 방법이다.

 

 

ps.

 

  • 본래는 자바스크립트 언어로부터 파생되어 자바스크립트의 구문 형식을 따르지만 언어 독립형 데이터 포맷이다
  • JSON의 공식 인터넷 미디어 타입은 application/json이며, JSON의 파일 확장자는 .json이다.

 

JSON 인코딩과 디코딩 방법

 

Json 인코드 순서

  1. 파일을 읽고 쓸 타입의 정의 및 인스턴스 생성
  2. 인스턴스를 JSONEncoder를 통해 JSON Data로 변환(인코딩된 인스턴스값을 Data변수에 할당
  3. 파일 시스템에 접근할 변수생성 및 저장할 경로 생성(URL타입)
  4. URL타입의 json경로 변수생성 후 .json파일 경로 할당
  5. 인코드된값 안에 json경로를 할당해준다

Json 디코드 순서

   1. 인스턴스를 JSONDecoder를 통해 JSON Data타입변수안에 jsonPath경로를 할당

   2. 디코드할 변수를 인스턴스 생성될 타입으로 지정하고 인코딩변수를 할당

   3. 디코드변수 출력