danbibibi
article thumbnail

JSON (JavaScript Object Notation)

  • JSON data : name-value 형태의 쌍으로 collection 타입
    • data는 , 로 나열
    • 객체는 {} 로 표현
    • 배열은 [] 로 표현
  • XML 사용시 파싱과 같은 복잡한 문제를 해결
  • XML에 비해 상대적으로 구문이 짧음
  • 단, JSON은 전달받은 데이터의 무결성을 직접 검증 (XML은 스키마 이용)
  • 텍스트 기반이므로 어떠한 프로그래밍언어와 플랫폼에서도 사용 가능

JSON 자료형

  • 수 (Number)
  • 문자열 String) : 끈따옴표로 구분
  • 참/거짓 (Boolean)
  • 배열 (Array)
  • 객체 (Object)
  • null (비어 있는 값)
{
  "name": "신짱구",
  "age": 7,
  "married": false,
  "family": { "father": "신형만", "mother": "봉미선" },
  "hobbies": ["놀기", "액션가면시청"],
  "jobs": null
}

 

JSON 사용 ( in JavaScript )

JSON.stringify

  • 직렬화 (serialize)
  • argument로 전달받는 자바스크립트 객체를 문자열로 변환
  • 변환된 js 객체 접근 시 . 이나  [] 이용
const obj = `{
  "name": "신짱구",
  "age": 7,
  "married": false,
  "family": { "father": "신형만", "mother": "봉미선" },
  "hobbies": ["놀기", "액션가면시청"],
  "jobs": null
}`;

const str = JSON.stringify(obj);
console.log(obj);

 

'{"name":"신짱구","age":7,"married":false,"family":{"father":"신형만","mother":"봉미선"},"hobbies":["놀기","액션가면시청"],"jobs":null}'

 

 

JSON.parse

  • 역직렬화 (deserialize)
  • 전달받은 문자열을 자바스크립트의 객체로 변환
  • argument로 받은 text는 반드시 JSON 형식에 일치해야 함
const str = `{
  "name": "신짱구",
  "age": 7,
  "married": false,
  "family": { "father": "신형만", "mother": "봉미선" },
  "hobbies": ["놀기", "액션가면시청"],
  "jobs": null
}`;

const obj = JSON.parse(str);
console.log(obj);

// 변환된 js 객체 접근 (. , [] 이용)
obj.age // 7
obj.family //  { "father": "신형만", "mother": "봉미선" }
boj.hobbies[0] // 놀기

 

# 출력 결과
{
    name: "신짱구",
    age: 7,
    married: false,
    family: {
        father: "신형만",
        mother: "봉미선"
    },
    hobbies: [
        "놀기",
        "액션가면시청"
    ],
    jobs: null
}

 

 

toJSON

  • 자바스크립트의 Date 객체의 데이터를 JSON 형식의 문자열로 변환
  • Date.prototype 객체에서만 사용 가능
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로