JSON 데이터 알아보기

태인
Written by 태인 on

JSON이란?

  • JavaScript Object Notation라는 의미의 축약어로 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 형식
  • Javascript에서 객체를 만들 때 사용하는 표현식을 의미한다.
  • JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아서, 최근에는 JSON이 XML을 대체해서 데이터 전송 등에 많이 사용한다.
  • JSON은 데이터 포맷일 뿐이며 어떠한 통신 방법도, 프로그래밍 문법도 아닌 단순히 데이터를 표시하는 표현 방법일 뿐이다.

특징

  • 서버와 클라이언트 간의 데이터 전송에서 주로 사용된다.
  • 자바스크립트 객체 표기법과 유사하다.
  • 자바스크립트를 이용하여 JSON 형식의 데이터를 쉽게 자바스크립트 객체로 변환 가능하다.
  • JSON 형식은 자바스크립트 객체의 형식을 기반으로 만들어졌다.
  • 다른 프로그래밍 언어를 이용해서도 쉽게 만들 수 있다.
  • 특정 언어에 종속되지 않으며, 대부분의 프로그래밍 언어에서 JSON 포맷의 데이터를 다룰 수 있는 라이브러리를 제공한다.

문법

{
  "fruits": [
    {
      "name": "Apple",
      "price": "5000"
    },
    {
      "name": "Pear",
      "price": "5500"
    },
    {
      "name": "Orange",
      "price": "6000"
    } 
  ]
}
  • key / value가 존재하며, key값이나 문자열은 항상 쌍따옴표를 이용하여 표기한다.
  • 객체, 배열 등의 표기를 사용할 수 있다.
  • 원하는 만큼 중첩시켜서 사용할 수도 있다.
  • null, number, string, array, object, boolean 타입을 사용할 수 있다.

name-value 쌍

object 역할

{ String key : String value }

{
  "name": "Apple",
  "price": "5000",
  "stock": "10"
}

리스트 형식

배열(Array) 역할

[value1, value2, …]

{
  "name": "Apple",
  "price": "5000",
  "stock": "10",
  "buyer": ["John","Tom"]
}

Javascript에서 사용하기

JSON 형식 텍스트를 JavaScript Object로 변환하기

var jsonText = '{ "name": "Apple", "price": "5000" }';  // JSON 형식의 문자열
var realObject = JSON.parse(jsonText);
var jsonText2 = JSON.stringify(realObject);

console.log(realObject);
console.log(jsonText2);
JSON.parse( JSON으로 변환할 문자열 ); // JSON 형식의 텍스트를 자바스크립트 객체로 변환한다.
JSON.stringify( JSON문자열로 변환할 값 ); // 자바스크립트 객체를 JSON 텍스트로 변환한다.

JSON의 한계

AJAX 는 단순히 데이터만이 아니라 JavaScript 그 자체도 전달할 수 있다. 즉, 전달받은 값이 단순한 데이터가 아닌 JavaScript가 될 수도 있고, 그게 악성 스크립트일 경우에도 실행까지 가능하다.

이러한 이유로 전달받은 값에서 데이터만을 사용하기 위한 JSON 관련 라이브러리가 존재하기도 한다.

태인

태인

댓글

comments powered by Disqus