JSON

박지훈·2020년 12월 30일
0

JSON (JavaScript Object Notation)

  • 일반적으로 서버에서 클라이언트로 데이터를 보낼 때 사용하는 DATA 양식이다. 경량의 DATA 교환 형식이다.
    --> 단순히 DATA를 표현하는 방법이다.

  • JavaScript에서 객체를 만들 때 사용하는 표현식을 의미한다.

  • 이해하기 쉽고 크기가 작으며 간결하고 통일된 양식으로 XML을 대체하는 양식으로 각광을 받고 있다.



특징

  • 클라이언트와 서버간의 통신에서 주로 사용된다.

  • JavaScript 객체 표기법과 매우 유사하다.
    JavaScript 문법과 굉장히 유사하지만 텍스트 형식일 뿐이다.

  • JavaScript를 이용하여 JSON 형식의 문서를 쉽게 JavaScript 객체로 변환할 수 있다.

  • JSON은 JavaScript 객체의 형식을 기반으로 만들어졌다.

  • 다른 프로그래밍 언어를 이용하여 쉽게 만들 수 있다.

  • 특정 언어에 종속X, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 조작할 수 있는 라이브러리를 제공한다.



XML vs JSON

XML

  • 데이터값 양쪽으로 tag가 있다.
    HTML 문서를 기반으로 만들어졌기 때문에 tag가 존재하는데, tag를 줄인다 하여도 최소한 표현하려면 양쪽에 글자가 있어야한다. 결국 길어지게 된다.

JSON

  • tag 쓰지 않으며 '{}', '[]' 같은 형식으로 표현을 하고 ','로 나열하기 때문에 XML에 비해 상대적으로 길이가 짧고 표현이 간단하다.



JSON 표현

{
    "회사": [
        {
           "이름": "Apple",
           "운영체제": [
               "macOS",
               "iOS"
                       ]
        },
        {
           "이름": "Microsoft",
           "운영체제": [
               "MS-DOS",
               "Windows"
                       ]
        }
    ]
}
  1. JSON 형식은 JavaScript 객체와 마찬가지로 (key/value) 쌍으로 존재할 수 있으며 key값이나 문자열은 항상 쌍따옴표를 이용하여 표기해야한다.

  2. 객체, 배열 등의 표기를 할 수 있다.

  3. 일반 JavaScript의 객체처럼 원하는 만큼 중첩시켜 사용할 수도 있다.

  4. null, number, string, array, object, boolean을 사용할 수 있다.



JSON 형식

name-value 쌍의 형식

{
  "firstName": "Kim",
  "lastName": "dukbae",
  "email": "han885404@gmail.com"
}
  • 여러가지 언어들에서 object, hashtable, struct로 구현되었다.

  • {String key:String value}


값들의 순서화된 리스트 형식

{
  "firstName": "Kim",
  "lastName": "dukbae",
  "email": "han885404@gmail.com",
  "hobby": ["playsoccer","study"]
}
  • 여러가지 언어들에서 배열, 리스트로 구현되었다.

  • [value1, value2, ...]



JSON 문제점

AJAX는 데이터뿐만 아니라 JavaScript 자체를 전달할 수 있다. 이로 인해 비동기 통신으로 받은 데이터가 JSON 데이터일 수도 있고, JavaScript 데이터 일수도 있다. (데이터인줄 알았으나 악성 script 일 수 있다.)

이를 방지하기 위해 받은 내용에서 순수하게 데이터만 추출하기 위한 JSON 관련 라이브러리를 따로 사용한다고 한다.



출처 :
https://velog.io/@surim014/JSON%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80
https://namu.wiki/w/JSON
https://ko.wikipedia.org/wiki/JSON
https://nesoy.github.io/articles/2017-02/JSON
https://wikidocs.net/22330
https://zeddios.tistory.com/90
https://araikuma.tistory.com/339

profile
Computer Science!!

0개의 댓글