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 인코드 순서
- 파일을 읽고 쓸 타입의 정의 및 인스턴스 생성
- 인스턴스를 JSONEncoder를 통해 JSON Data로 변환(인코딩된 인스턴스값을 Data변수에 할당
- 파일 시스템에 접근할 변수생성 및 저장할 경로 생성(URL타입)
- URL타입의 json경로 변수생성 후 .json파일 경로 할당
- 인코드된값 안에 json경로를 할당해준다
Json 디코드 순서
1. 인스턴스를 JSONDecoder를 통해 JSON Data타입변수안에 jsonPath경로를 할당
2. 디코드할 변수를 인스턴스 생성될 타입으로 지정하고 인코딩변수를 할당
3. 디코드변수 출력