JSON 데이터 알아보기

JSON이란?

특징

문법

{
  "fruits": [
    {
      "name": "Apple",
      "price": "5000"
    },
    {
      "name": "Pear",
      "price": "5500"
    },
    {
      "name": "Orange",
      "price": "6000"
    } 
  ]
}

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 관련 라이브러리가 존재하기도 한다.