JavaScript
JS | JSON(객체표기법)
개발 공부
2022. 12. 29. 10:44
다른 서버와 데이터를 주고받는 일을 할 수 있다. 네트워크는 json을 모른다.
데이터는 주고 받을 때 자바스크립트 객체 형태로 주고 받을 수 없고 문자열 형태로 주고 받을 수 있다.
( json형식을 띄고 있는 ) 문자열의 형태로 형변환해서 데이터를 보내주어야한다.
문자열 타입이 넘어오는(받아오는) 데이터는 객체 타입으로 다시 형변환해서 받아야한다.
데이터 타입을 문자열로 형변환 하는 함수
JSON.stringify(data);
문자열을 제이슨으로 형변환 하는 함수
단, 이 경우는 엄격한 형식을 지킨다. (키,값이 전부 " "로 묶여야한다.)
JSON.parse(문자열);
var data = [
{id:'aaa123', title:'aaa',content:'a...'},
{id:'aaa123', title:'bbb',content:'b...'},
{id:'aaa123', title:'ccc',content:'c...'},//마지막에 ,콤마가 들어가도 허용됨
];
// console.log(typeof(data));
// console.log(data);
//JS객체를 JSON문자열로 형변환
var str = JSON.stringify(data);
console.log(str);
//[{"id":"aaa123","title":"aaa","content":"a..."},{"id":"aaa123","title":"bbb","content":"b..."},{"id":"aaa123","title":"ccc","content":"c..."}]
//JSON문자열을 JS객체로 형변환
var obj = JSON.parse(str);
console.log(obj);
/*0:{id: 'aaa123', title: 'aaa', content: 'a...'}
1:{id: 'aaa123', title: 'bbb', content: 'b...'}
2:{id: 'aaa123', title: 'ccc', content: 'c...'}
length:3
[[Prototype]]:Array(0)*/
//단, 문자열을 객체로 변경할 떄는 엄격한 규칙이 있습니다.
//key, value가 ""쌍따옴표로 처리여야 합니다.
//JSON.parse("{id:'aaa123'}"); //err
var result = JSON.parse('{"id":"aaa123"}');
console.log(result);