JSON.stringify()는 자바스크립트에서 가장 널리 사용되는 메서드 중 하나로, 자바스크립트 객체나 값을 JSON 형식의 문자열로 변환하여 반환합니다. 서버로 데이터를 전송하거나 localStorage에 데이터를 저장할 때 필수적으로 사용되는 함수입니다.
문법(Syntax)
JSON.stringify(value[, replacer[, space]])
- value: JSON 문자열로 변환할 값(객체, 배열, 문자열, 숫자, 불리언 등)
- replacer(선택): 변환 과정을 제어하는 함수 또는 포함할 키를 지정하는 배열
- space(선택): 결과 문자열의 가독성을 높이기 위한 들여쓰기 공백 수
예제 1: 객체를 JSON 문자열로 변환
<html>
<head>
<title>JavaScript Example</title>
</head>
<body>
<script type="text/javascript">
var jsonObj = {Tutorial: 'Java', Version: 8};
var jsonString = JSON.stringify(jsonObj);
document.write(jsonString);
</script>
</body>
</html>
출력(Output)
{"Tutorial":"Java","Version":8}
객체가 키와 값 모두 큰따옴표로 감싸진 JSON 문자열로 변환된 것을 확인할 수 있습니다.
예제 2: 문자열에 적용한 경우
이미 문자열인 값을 전달하면 따옴표가 추가된 형태로 그대로 반환됩니다.
var jsonSample = '{Tutorial: Java, Version:8}';
document.write(JSON.stringify(jsonSample));
출력
"{Tutorial: Java, Version:8}"
알아두면 좋은 점
- 반대로 JSON 문자열을 다시 자바스크립트 객체로 변환하려면
JSON.parse()를 사용합니다. undefined, 함수, 심볼은 객체의 속성값일 경우 변환 과정에서 생략되며, 배열 안에서는null로 변환됩니다.- Date 객체는 ISO 8601 형식(UTC 기준)의 문자열로 자동 변환됩니다.
space옵션을 활용하면JSON.stringify(obj, null, 2)처럼 보기 좋게 정렬된 문자열을 얻을 수 있습니다.