JSON.stringify 란?
앞서 JSON 이란?
2022.02.04 - [JavaScript] - JSON
JSON
JSON 이란? JavaScript Object Notation은 Javascript 객체 문법으로 구조화된 데이터를 표현하기 위한 문자 기반의 표준 포맷입니다. 웹 어플리케이션에서 데이터를 전송할 때 일반적으로 사용합니다.(서
ex-xe.tistory.com
JavaScript 값이나 객체를 JSON 문자열로 변환한다.
- 배열이 아닌 객체의 속성들은 어떤 특정한 순서에 따라 문자열화 될 것이라고 보장되지 않는다. 같은 객체의 문자열화에 있어서 속성의 순서에 의존하지 않는다.
- Boolean, Number, String 객체들은 문자열화 될 때 전통적인 변환 의미에 따라 연관된 기본형(primitive) 값으로 변환된다.
- undefined, 함수, 심볼(symbol)은 변환될 때 생략되거나(객체 안에 있을 경우) null 로 변환된다(배열 안에 있을 경우).
- 심볼을 키로 가지는 속성들은 replacer 함수를 사용하더라도 완전히 무시된다.
- 열거 불가능한 속성들은 무시된다.
JSON의 일반적인 용도는 웹 서버와 데이터를 교환하는 것이다.
웹 서버에 데이터를 보낼 때 데이터는 문자열이어야 하기 때문에 JSON.stringify()를 사용하여 JavaScript 개체를 문자열로 변환한다.
구문과 사용법
JSON.stringify(value[, replacer[, space]])
- value : JSON 문자열로 변환할 값.
- replacer(Optional) : 문자열화 동작 방식을 변경하는 함수, 혹은 JSON 문자열에 포함될 값 객체의 속성들을 선택하기 위한 화이트리스트(whitelist)로 쓰이는 String 과 Number 객체들의 배열. 이 값이 null 이거나 제공되지 않으면, 객체의 모든 속성들이 JSON 문자열 결과에 포함된다. 쉽게 풀자면 문자열로 변환되길 원하는 프로퍼티가 담긴 배열을 작성하면 이 프로퍼티들만 인코딩할 수 있다는 뜻이다.
- space : 가독성을 목적으로 JSON 문자열 출력에 공백을 삽입하는데 사용한다. String 또는 Number로 작성한다.
const obj = {name: "NamRa", age: "18", city: "Hyosan"};
const myJSON = JSON.stringify(obj);
console.log(myJSON);
// {"name":"NamRa","age":"18","city":"Hyosan"}
JSON.parse 란?
JSON 문자열의 구문을 분석하고, 그 결과에서 JavaScript 값이나 객체를 생성한다.
구문과 사용법
JSON.parse(text[, reviver])
- text : JSON으로 변환할 문자열.
- reviver(Optional) : 값을 반환하기 전에 각 속성을 확인하는 함수이다.
const myJSON = `{"name":"NamRa","age":"18","city":"Hyosan"}`;
const myParse = JSON.parse(myJSON);
console.log(myParse);
// {name: 'NamRa', age: '18', city: 'Hyosan'}