JSON 객체 (JSON.parse(), JSON.stringify())
JSON(Javascript Object Notation)
JSON은 JavaScript Object Notation 의 약자로 데이터를 저장하거나 전송하기 위한 경량 DATA 포맷이다.
JSON은 DATA 포맷이라는 단어처럼 데이터를 표현하기 위한 방법일 뿐이다.
JSON 표현식은 사람과 기계 모두 이해하기 쉬우며 용량이 작아 최근에는 XML을 대신해 JSON이 데이터 전송에
많이 사용한다.
XML vs JSON
XML(eXtensible Markup Language)
HTML과 비슷한 문자 기반의 마크업 언어이다. 사람과 기계 모두 읽기 편한 구조로 되어 있다.
하지만 HTML 처럼 데이터를 보여주는게 목적이 아닌 데이터를 저장하고 전달할 목적으로 만들어졌다.
XML의 특징은 태그명을 사용자가 직접 정의할 수 있다. 정의한 태그 안에 전달할 데이터를 저장한다.
하지만 태그의 머리 부분이 있으면 끝맺음을 지어야 한다.
<TestCode>전달할 데이터</TestCode>
위 TestCode 태그가 있으면 끝맺음인 /TestCode 태그가 있어야 한다.
JSON
태그로 표현하는게 아닌 중괄호({}) 형식으로 데이터를 담는다. 또한 데이터는 Key, Value 쌍으로 표현하는데
"Key : Value" 형식이다.
{
"Customer": [
{
"name": "obo",
"number": "010-xxxx-xxxx"
}
]
}
JSON.parse()
JSON 객체의 parse() 메소드는 JSON 형식의 문자열을 Json 객체로 변환시킨다.
let Company = {
name: 'obo',
age: 13
}
let jsonString = JSON.stringify(Company);
console.log(typeof jsonString);
// 결과 : string
let jsonObject = JSON.parse(jsonString)
console.log(typeof jsonObject)
// 결과 : object
Company 객체를 JSON.stringify 메서드를 통해 JSON string 객체로 변경 후 다시 parse() 메서드로 바뀐걸 확인할 수 있다.
JSON.stringify()
JSON 객체의 stringify() 메소드는 Json 객체를 String 객체로 변환 시켜준다.
let Company = {
name: 'obo',
age: 13
}
let jsonString = JSON.stringify(Company);
console.log(typeof Company);
//결과 : object
console.log(typeof jsonString);
// 결과 : string
위 Company 객체를 String 형 문자열로 변환시킨다.
아래 이미지를 보면 Company 객체가 JSON string 형 객체로 바뀐걸 볼 수 있다.
일반 객체와 다른점은 문자열은 큰따옴표로 감싸야 한다.