Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- TypeScript
- github
- 프론트엔드
- HTML
- CSS
- 그럼에도 불구하고
- media query
- frontend
- react-router-dom
- 그럼에도불구하고
- JS
- react
- Servlet
- 코딩테스트
- JavaScript
- 변수
- @media
- redux
- 코드업
- git
- max-width
- 자바문제풀이
- coding
- 자바
- node
- 반응형 페이지
- webpack
- java
- cleancode
- node.js
Archives
- Today
- Total
그럼에도 불구하고
[JavaScript] JSON.stringify / JSON.parse란? 본문
JSON.stringify와 JSON.parse에 대해 알아보자
[ JSON.stringify ]
JSON.stringify 메서드 객체를 JSON 포맷의 문자열로 변환한다. 클라이언트가 서버로 객체를 전송하려면 객체를 문자열화해야 하는데 이를 직렬화(serializing)라 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | const obj = { name: 'Lee', age: 20, alive: true, hobby: ['traveling', 'tennis'] }; // 객체를 JSON 포맷의 문자열로 변환한다. const json = JSON.stringify(obj); console.log(typeof json, json); // string {"name":"Lee","age":20,"alive":true,"hobby":["traveling","tennis"]} // 객체를 JSON 포맷의 문자열로 변환하면서 들여쓰기 한다. const prettyJson = JSON.stringify(obj, null, 2); console.log(typeof prettyJson, prettyJson); /* string { "name": "Lee", "age": 20, "alive": true, "hobby": [ "traveling", "tennis" ] } */ // replacer 함수. 값의 타입이 Number이면 필터링되어 반환되지 않는다. function filter(key, value) { // undefined: 반환하지 않음 return typeof value === 'number' ? undefined : value; } // JSON.stringify 메서드에 두 번째 인수로 replacer 함수를 전달한다. const strFilteredObject = JSON.stringify(obj, filter, 2); console.log(typeof strFilteredObject, strFilteredObject); /* string { "name": "Lee", "alive": true, "hobby": [ "traveling", "tennis" ] } */ | cs |
JSON.stringify 메서드는 객체뿐만 아니라 배열도 JSON 포맷의 문자열로 변환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | const todos = [ { id: 1, content: 'HTML', completed: false }, { id: 2, content: 'CSS', completed: true }, { id: 3, content: 'Javascript', completed: false } ]; // 배열을 JSON 포맷의 문자열로 변환한다. const json = JSON.stringify(todos, null, 2); console.log(typeof json, json); /* string [ { "id": 1, "content": "HTML", "completed": false }, { "id": 2, "content": "CSS", "completed": true }, { "id": 3, "content": "Javascript", "completed": false } ] */ | cs |
[ JSON.parse ]
JSON.parse 메서드는 JSON 포맷의 문자열을 객체로 변환한다. 서버로부터 클라이언트에게 전송된 JSON 데이터는 문자열이다. 이 문자열을 객체로서 사용하려면 JSON 포맷의 문자열을 객체화해야 하는데 이를 역직렬화(deserializing)라 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | const obj = { name: 'Lee', age: 20, alive: true, hobby: ['traveling', 'tennis'] }; // 객체를 JSON 포맷의 문자열로 변환한다. const json = JSON.stringify(obj); // JSON 포맷의 문자열을 객체로 변환한다. const parsed = JSON.parse(json); console.log(typeof parsed, parsed); // object {name: "Lee", age: 20, alive: true, hobby: ["traveling", "tennis"]} | cs |
배열이 JSON 포맷의 문자열로 변환되어 있는 경우 JSON.parse는 문자열을 배열 객체로 변환한다. 배열의 요소가 객체인 경우 배열의 요소까지 객체로 변환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | const todos = [ { id: 1, content: 'HTML', completed: false }, { id: 2, content: 'CSS', completed: true }, { id: 3, content: 'Javascript', completed: false } ]; // 배열을 JSON 포맷의 문자열로 변환한다. const json = JSON.stringify(todos); // JSON 포맷의 문자열을 배열로 변환한다. 배열의 요소까지 객체로 변환된다. const parsed = JSON.parse(json); console.log(typeof parsed, parsed); /* object [ { id: 1, content: 'HTML', completed: false }, { id: 2, content: 'CSS', completed: true }, { id: 3, content: 'Javascript', completed: false } ] */ | cs |
'JavaScript > JavaScript basics' 카테고리의 다른 글
[JavaScript] REST API란? (0) | 2023.02.06 |
---|---|
[JavaScript] XMLHttpRequest란? (0) | 2023.02.06 |
[JavaScript] data 어트리뷰트와 dataset 프로퍼티 (0) | 2023.02.02 |
[JavaScript] 요소 다루기 / 요소 추가하기 / 요소 삭제하기 (0) | 2023.01.31 |
[JavaScript] 변수명 앞에 붙는 달러($)의 의미 (jQuery X) (2) | 2023.01.28 |
Comments