사용 방법
- JSON을 붙여넣거나 파일을 열거나 예제를 사용해 보세요.
- 설정을 조정하세요. 결과는 입력에 따라 갱신됩니다.
- 포맷을 정리한 결과를 복사하거나 다운로드하세요.
JSON 이해하기
JSON은 구조화된 데이터를 교환하기 위한 텍스트 형식입니다. API 응답, 설정 파일, 내보낸 레코드 등에서 자주 접하게 됩니다. 값의 유형이 간결하게 구성되어 있어 서로 다른 프로그래밍 언어 사이에서 데이터를 전달하기에 적합합니다.
포맷을 정리하면 구조를 살펴보기 쉬워집니다. 들여쓰기는 어떤 값들이 함께 묶이는지 보여 주고, 줄 바꿈은 중첩된 레코드를 따라 읽기 쉽게 만듭니다. 이러한 배치 방식은 유효한 문서가 나타내는 데이터를 바꾸지 않습니다.
값과 구조
JSON 문서는 값 하나를 포함합니다. 루트 값은 객체나 배열일 수 있으며, 문자열, 숫자, 불리언, null도 유효합니다. 객체는 문자열 이름을 값에 연결하고, 배열은 의미 있는 순서대로 값을 담습니다. 둘 다 중첩할 수 있습니다.
| 유형 | 예제 | 의미 |
|---|---|---|
| 객체 | {"name": "Ada"} | 중괄호 안에 있는 이름이 지정된 속성. |
| 배열 | ["red", "blue"] | 대괄호 안에 있는 순서가 정해진 값의 나열. |
| 문자열 | "Hello, world" | 큰따옴표로 묶은 텍스트. |
| 숫자 | -12.5e2 | 지수를 포함할 수도 있는 10진수. |
| 불리언 | true / false | 두 논리값 중 하나. |
| null 값 | null | 속성 생략이 아닌 명시적인 null 값. |
꼭 지켜야 할 구문
속성 이름과 문자열에는 큰따옴표를 사용합니다. 이름과 값은 콜론으로, 객체의 멤버와 배열의 항목은 쉼표로 구분합니다. 마지막 멤버나 항목 뒤에는 쉼표를 넣지 마세요. 주석, 작은따옴표, JavaScript 표현식은 엄격한 JSON에 포함되지 않습니다.
리터럴 true, false, null은 소문자로 씁니다. 숫자는 10진법으로 표기하며, 음수 기호, 소수부, 지수부를 선택적으로 포함할 수 있습니다. 앞자리 0, 앞에 붙인 더하기 기호, NaN, Infinity는 유효하지 않습니다. 문자열 안의 따옴표, 백슬래시, 제어 문자는 이스케이프해야 하며, 줄 바꿈은 \n 같은 이스케이프 표기로 써야 합니다.
데이터를 안정적으로 교환하려면 객체의 이름이 고유해야 합니다. 이름이 중복되면 읽는 소프트웨어에 따라 서로 다른 값을 유지할 수 있습니다. 포맷터는 중복을 알리고 그대로 보존하므로 해결 방법은 직접 결정할 수 있습니다. 구문 검사만으로는 문서가 API 계약이나 JSON Schema를 충족하는지 확인할 수 없습니다.
포맷 정리 시 보존하는 내용
DevToolsy는 입력을 검증하고 원본 토큰 주변의 공백을 조정합니다. 900719925474099312345, 19.9900, 1e+400, -0 같은 숫자 텍스트와 원본 문자열 이스케이프를 유지합니다. 따라서 숫자를 JavaScript 부동소수점 값으로 파싱한 후 다시 직렬화할 때 발생하는 반올림을 피할 수 있습니다. 결과를 읽는 애플리케이션은 자체적인 수치 정밀도를 적용합니다.
들여쓰기, LF 또는 CRLF 줄 끝 문자, 마지막 줄 바꿈은 출력 형식의 선택 사항입니다. '키 정렬'은 별도의 선택적 변경으로, 디코딩한 이름을 대소문자를 구분하는 일관된 방식으로 비교하여 객체 멤버를 재귀적으로 정렬합니다. 배열의 순서와 중복 이름 사이의 상대적인 순서는 유지됩니다. 이는 읽기와 차이 비교를 위한 기능이며, 암호학적 서명을 위한 정규화 방식은 아닙니다.
{"name":"Ada","roles":["developer","reviewer"],"active":true}{
"name": "Ada",
"roles": [
"developer",
"reviewer"
],
"active": true
}들여쓰기는 표시 방식만 바꿉니다. 속성 이름, 값, 배열 순서는 그대로입니다.
UTF-8 입력 최대 5 MiB, 출력 최대 20 MiB, 중첩 최대 128단계, 스캔 토큰 최대 250,000개, 실행당 최대 10초를 지원합니다. 큰 문서는 더 성능이 좋은 기기가 필요할 수 있습니다.
자주 묻는 질문
자동 포맷 정리가 입력을 바꾸나요?
아니요. 입력이 잠시 멈추면 읽기 전용 결과를 갱신하며, 작성한 입력은 그대로 둡니다. 자동 포맷 정리는 처음부터 켜져 있습니다. 끄면 'JSON 포맷 정리'나 Ctrl/⌘ + Enter로 직접 실행할 수 있습니다.
JSON을 아직 다 입력하지 않았을 때는 어떻게 되나요?
편집하는 동안 마지막으로 유효했던 결과를 계속 표시합니다. 현재 입력과 설정으로 유효한 결과가 나올 때까지 복사와 다운로드는 비활성화됩니다. 오류를 선택하면 입력의 해당 위치로 이동합니다.
큰 숫자를 반올림하거나 문자열 이스케이프를 바꾸나요?
아니요. 원본 숫자 토큰과 문자열 이스케이프 표기를 유지합니다. 긴 정수, 소수 끝의 0, 지수 표기, 음의 0도 포함됩니다. 다른 애플리케이션은 이러한 숫자를 서로 다른 정밀도로 해석할 수 있습니다.
키를 정렬하면 배열도 재정렬되나요?
아니요. 키 정렬은 객체에만 재귀적으로 적용합니다. 배열의 순서와 중복 이름 사이의 상대적인 순서는 유지합니다. 기본적으로 정렬은 꺼져 있습니다.
주석이나 마지막 항목 뒤의 쉼표를 수정할 수 있나요?
엄격한 JSON만 허용하며, 수정 방법을 추측하지 않고 잘못된 구문을 알립니다. 주석, 작은따옴표 문자열, 따옴표 없는 키, 마지막 항목 뒤의 쉼표는 입력에서 수정해야 합니다.
JSON Beautifier와 JSON Formatter는 같은 것인가요?
네. 이 페이지에서 beautify, pretty-print, 포맷 정리는 모두 JSON에 읽기 쉬운 들여쓰기와 줄 바꿈을 추가하는 것을 뜻합니다. 공백을 줄인 문서가 필요하면 JSON 압축기를 사용하세요.
JSON이 기기 밖으로 전송되나요?
붙여넣은 텍스트와 로컬 파일은 브라우저에서 처리됩니다. DevToolsy는 JSON을 업로드하거나 문서 이력을 저장하지 않습니다. 보관하려면 페이지를 떠나기 전에 결과를 복사하거나 다운로드하세요.