DEV&OPS/Javascript
JSON
ALEPH.GEM
2022. 3. 2. 14:46
직렬화(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