삶 가운데 남긴 기록 AACII.TISTORY.COM
JSON 본문
직렬화(serialize)
컴퓨터 메모리 안에 구현된 객체(인스턴스)를 문자열로 변환하는 과정을 직렬화라고 합니다.
반대로 문자열을 다시 객체로 환원화하는 것을 역직렬화라고 합니다.
JSON(Javascript Object Notation) 표기법
리터럴 객체: { name : "Tom", age : 17, marriage : false, data : [2, 5, null] };
JSON: ' { "name" : "Tom", "age" : 17, "marriage" : false, "data" : [2, 5, null] } ';
차이점은 프로퍼티 이름을 큰따옴표로 묶은 문자열로 표기하고 전체는 작은 따옴표로 묶어서 표기한다는 점입니다.
객체를 JSON으로 변환
JSON.stringify()
첫번째 인수: JSON으로 변환할 객체.
두번째 인수(생략가능): 함수 또는 배열. 함수인경우 프로퍼티의 키와 값을 함수의 인수로 받아서 문자열을 리턴하고 배열을 지정하면 배열의 element로 객체의 프로퍼티 네임을 필터링합니다.
JSON.stringify({x:1, y:2, z:3}, ["x", "z"]); //'{"x":1, "z":3}'
//배열의 원소 값으로 필터링
세번째 인수(생략가능): 지정된 문자로 들여쓰기를 합니다.
주의할 점
- 열거 가능한 프로퍼티만 직렬화 됩니다.
- 직렬화 할 수 없는 프로퍼티는 문자열로 출력되지 않습니다.
- 프로퍼티 중에서 키가 심벌인 경우도 직렬화 되지 않습니다.
JSON을 객체로 환원
JSON.parse()
첫번째 인수: JSON 문자열 객체를 지정합니다.
두번째 인수(생략가능): 프로퍼티의 키와 값을 인수로 받는 함수를 지정할 수 있습니다. 이 함수는 환원될 객체의 프로퍼티 값을 리턴해야만 합니다.
JSON.parse('{"x":1,"y":2}'); //{x:1, y:2}
728x90
'DEV&OPS > Javascript' 카테고리의 다른 글
javascript array, map, set (0) | 2022.03.03 |
---|---|
javascript 알고리즘 연습 (0) | 2022.03.02 |
javascript object property (0) | 2022.03.02 |
javascript prototype (0) | 2022.02.23 |
javascript ECMAScript 6부터 추가된 함수와 객체의 기능 (0) | 2022.02.21 |