javascript & jQuery

json

k9e4h 2016. 8. 22. 09:18



JSON (JavaScript Object Notation)은 경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.


처음 json 타입을 보게되면 객체와 차이점을 느끼기 어렵다. json 타입은 객체와 매우 유사한 모습을 띄고 있으며 차이점이라면 사용되는 이름 그리고 값 모두가 따옴표(")를 사용하여 표기된다는 점이다. 이는 자바스크립트 객체와 차이점으로 아래의 코드를 통해 무엇이 다른지 확인이 가능하다.

/* 자바스크립트 객체의 문법 */
{
  name: "kimeunhye",
  gender: "female"
}

/* JSON 형태의 문법 */
{
   "name" : "kimeunhye",
   "gender": "female"
}





배열(Array)

배열은 대괄호[]로 나타낸다. 배열의 각 요소는 기본 자료형이거나 배열, 객체이다. 각 요소들은 쉼표(,)로 구별된다. 각 요소가 나타나는 순서에 의미가 있다.

 [10, {"v": 20}, [30, "마흔"]]

객체(Object)

객체는 이름/값 쌍의 집합으로, 중괄호{}를 사용한다. 이름은 문자열이기 때문에 반드시 따옴표를 하며, 값은 기본 자료형이거나 배열, 객체이다. 각 쌍들은 쉼표(,)로 구별된다. 각 쌍이 나오는 순서는 의미가 없다.

 {"name2": 50, "name3": "값3", "name1": true}

JSON 메시지 단위는 배열이나 객체이다. 위의 두 예는 JSON 메시지가 될 수 있다.


예시

 {
2     "이름": "테스트",
3     "나이": 25,
4     "성별": "여",
5     "주소": "서울특별시 양천구 목동",
6     "특기": ["농구", "도술"],
7     "가족관계": {"#": 2, "아버지": "홍판서", "어머니": "춘섬"},
8     "회사": "경기 안양시 만안구 안양7동";
9  }

[출처] 위키트리 https://ko.wikipedia.org/wiki/JSON



JSON.parse(text[, reviver])

인자로 전달된 JSON 문자열을 자바스크립트의 객체로 변환한다. 선택 사항으로 구문 분석으로 생성된 값과 속성을 변환해 그 값을 반환한다.


파싱할 문자열이 유효한 JSON이 아닐 경우 SyntaxError 발생


JSON.stringify(value[, replacer[, space]])

인자로 전달된 자바스크립트의 데이터를 문자열로 변환한다.

지정된 값에 해당하는 JSON 문자열을 반환한다. 선택 사항으로 특정 속성만 포함하거나 사용자 정의 방식으로 속성을 대체한다.

JSON.stringify({ x: 5, y: 6 });
// '{"x":5,"y":6}' or '{"y":6,"x":5}'
JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);
// '[1,"false",false]'

[출처] https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify




Springframework에서 jsonObject jsonArray 사용법 및 예시

http://aljjabaegi.tistory.com/40


연관배열/색인배열

http://ojava.tistory.com/18



http://xens.tistory.com/entry/JSONJavaScript-Object-Notation%EC%82%AC%EC%9A%A9%EB%B2%95%EC%97%90-%EB%8C%80%ED%95%B4



의문점

jason array를 쓸때와 object를 쓸 때 상황 차이


반응형

'javascript & jQuery' 카테고리의 다른 글

jQuery 요소 찾기  (0) 2016.09.09
PROMISE  (5) 2016.08.22
RESTFUL(Representational Safe Transfer)  (0) 2016.08.19
HTTP 통신 VS Socket 통신  (0) 2016.08.18
생활코딩 Javascript 기본  (0) 2016.08.16