JSON

Yuri Lee·2022년 6월 23일
0

JSON

목록 보기
1/1

JSON 개요

JSON은 JavaScript Object Notation의 약자입니다.

JSON은 이기종 간에 좀 더 쉽게 데이터를 교환하고 저장하기 위하여 만들어진 텍스트 기반의 데이터 교환 표준입니다. ( 앱 <-> 서버, 자바 <-> 자바스크립트 등 )

왜 사용할까?

제이슨은 특정 언어에 종속되지 않는 공식 데이터 포맷이기 때문에 누구나 숙지 및 사용이 가능하다. 따라서 다른 개발자와 협업 시 데이터를 교환하기 유용하다.

{
    "language": [
        {
            "name": "HTML",
            "category": "web",
            "developer": "W3C"
        },
        {
            "name": "CSS",
            "category": "web",
            "developer": "W3C"
        },
        {
            "name": "Java",
            "category": "application",
            "developer": "Oracle"
        },
        {
            "name": "Python",
            "category": "application",
            "developer": "Python"
        }
    ]
}```

JSON의 특징

JSON은 다음과 같은 특징을 가집니다.

  1. JSON은 자바스크립트를 확장하여 만들어졌습니다.
  2. JSON은 자바스크립트 객체 표기법을 따릅니다.
  3. JSON은 사람과 기계가 모두 읽기 편하도록 고안되었습니다.
  4. JSON은 프로그래밍 언어와 운영체제에 독립적입니다.

JSON과 XML

XML이란?

XML은 EXtensible Markup Language의 약자입니다.

이러한 XML은 HTML과 매우 비슷한 문자 기반의 마크업 언어(text-based markup language)입니다.

JSON과 XML의 공통점

JSON과 XML은 다음과 같은 공통점을 가지고 있습니다.

  1. 둘 다 데이터를 저장하고 전달하기 위해 고안되었습니다.
  2. 둘 다 기계뿐만 아니라 사람도 쉽게 읽을 수 있습니다.
  3. 둘 다 계층적인 데이터 구조를 가집니다.
  4. 둘 다 다양한 프로그래밍 언어에 의해 파싱될 수 있습니다.
  5. 둘 다 XMLHttpRequest 객체를 이용하여 서버로부터 데이터를 전송받을 수 있습니다.

JSON과 XML의 차이점

하지만 JSON과 XML은 다음과 같은 차이점도 가지고 있습니다.

  1. JSON은 종료 태그를 사용하지 않습니다.
  2. JSON의 구문이 XML의 구문보다 더 짧습니다.
  3. JSON 데이터가 XML 데이터보다 더 가볍기 때문에 최소한의 용량으로 데이터 전송이 가능합니다.
  4. XML은 배열을 사용할 수 없지만, JSON은 배열을 사용할 수 있습니다.
  5. XML은 XML 파서로 파싱되며, JSON은 자바스크립트 표준 함수인 eval() 함수로 파싱됩니다

JSON의 사용 범위

XML 문서는 XML DOM(Document Object Model)을 이용하여 해당 문서에 접근합니다.

하지만 JSON은 문자열을 전송받은 후에 해당 문자열을 바로 파싱하므로, XML보다 더욱 빠른 처리 속도를 보여줍니다.

JSON과 객체(object)

JSON에서 객체란 이름(name)과 값(value)으로 구성된 프로퍼티(property)의 정렬되지 않은 집합입니다.

JSON 구조

JSON은 자바스크립트의 객체 표기법으로부터 파생된 부분 집합입니다.

따라서 JSON 데이터는 다음과 같은 자바스크립트 객체 표기법에 따른 구조로 구성됩니다.

  1. JSON 데이터는 이름과 값의 쌍으로 이루어집니다.
  2. JSON 데이터는 쉼표(,)로 나열됩니다.
  3. 객체(object)는 중괄호({})로 둘러쌓아 표현합니다.
  4. 배열(array)은 대괄호([])로 둘러쌓아 표현합니다.

JSON 객체

JSON 객체는 중괄호({})로 둘러쌓아 표현합니다.
또한, JSON 객체는 쉼표(,)를 사용하여 여러 프로퍼티를 포함할 수 있습니다.

JSON 배열

JSON 배열은 대괄호([])로 둘러쌓아 표현합니다.
또한, JSON 배열은 쉼표(,)를 사용하여 여러 JSON 데이터를 포함할 수 있습니다.

객체 안의 객체

JSON에서 데이터 이름과 대응되는 값으로 숫자, 문자열, 불리언뿐만 아니라 또 다른 객체가 올 수도 있습니다.
만약 데이터의 값이 객체라면 객체 안에 객체가 포함되는 계층 구조가 형성됩니다.

{
    "dog": {
        "name": "식빵",
        "family": "웰시코기",
        "age": 1,
        "weight": 2.14,
        "owner": {
            "ownerName": "홍길동",
            "phone": "01012345678"
        } //객체 안의 객체
    }
}

배열(array)

JSON에서 배열(array)이란 여러 개의 데이터가 순서를 가지고 나열된 집합을 의미합니다.
이러한 JSON 배열은 대괄호([])로 둘러싸여 있습니다.

{
    "dog": [
        "웰시코기",
        "포메라니안",
        "푸들"
    ]
}

JSON에서 배열의 인덱스는 언제나 0부터 시작합니다.

따라서 위의 예제에서 "웰시코기"는 0, "포메라니안"은 1, "푸들"은 2의 인덱스를 가지게 됩니다.

배열과 객체의 차이점

JSON에서 배열과 객체는 여러 데이터를 묶어놓은 집합이라는 점에서 서로 비슷한 타입입니다.
하지만 객체는 프로퍼티의 집합이며, 배열은 데이터값의 집합이라는 차이가 있습니다.

{
    "dog": [
        "웰시코기",
        "포메라니안",
        "푸들",
        {
            "ownerName": "홍길동",
            "phone": "01012345678"
        }
    ]
}

위의 예제에서 "dog"라는 이름의 JSON 배열은 문자열뿐만 아니라 객체도 요소로 가지고 있습니다.
대부분의 프로그래밍 언어에서 배열은 여러 타입의 데이터를 동시에 가질 수 없습니다.
하지만 자바스크립트 기반의 JSON 배열은 여러 타입의 배열 요소를 가질 수 있습니다

profile
유리

0개의 댓글