이 도구는
JSON5는 사람이 직접 작성하는 파일을 위해 설계된 JSON 확장입니다. 주석, 후행 쉼표, 따옴표 없는 객체 키, 작은따옴표 문자열, 그리고 좀 더 편한 숫자 표기를 허용합니다. Babel, 일부 번들러와 많은 애플리케이션이 설정 파일로 JSON5나 JSONC(주석이 있는 JSON으로, tsconfig.json과 VS Code 설정에서 사용)를 받아들입니다.
하지만 많은 파서, API, 프로그래밍 언어는 엄격한 JSON만 받습니다. 이 변환기는 JSON5나 JSONC를 읽어 어떤 JSON 파서든 받아들이는 표준 JSON을 출력합니다. 모든 키는 큰따옴표로 감싸고, 주석과 후행 쉼표는 없으며, 숫자는 10진수로 씁니다.
사용 방법
- JSON5나 JSONC를 붙여 넣거나,
.json5,.jsonc,.json파일을 업로드하거나, 예시 를 누릅니다. - 들여쓰기 를 고릅니다: 2칸 또는 4칸, 한 줄로 출력하려면 압축.
Infinity와NaN처리 방식을 고릅니다:null로 변환, 문자열로 변환, 또는 오류 표시.- 생성된 JSON을 복사하거나 다운로드합니다.
입력에 문법 오류가 있으면 메시지에 줄과 열 번호가 표시되어 바로 그 위치로 이동할 수 있습니다. 일반 JSON도 올바른 JSON5이므로 파일이 파싱되는지 확인하고 들여쓰기를 다시 하는 용도로도 쓸 수 있습니다.
예시
다음 JSON5 설정은:
// Server settings
{
host: 'localhost',
port: 0x1F90, // 8080
ratio: .5,
tags: ['api', 'v2',],
}
다음과 같은 엄격한 JSON이 됩니다:
{
"host": "localhost",
"port": 8080,
"ratio": 0.5,
"tags": [
"api",
"v2"
]
}
주석은 제거되고, 키와 문자열은 큰따옴표로 감싸지며, 16진수와 정수부를 생략한 소수는 10진수로 바뀌고, 후행 쉼표는 사라집니다.
변환되는 내용
//줄 주석과/* */블록 주석을 제거합니다.port같은 따옴표 없는 키와'localhost'같은 작은따옴표 문자열을 큰따옴표로 바꿉니다.- 줄 끝 백슬래시로 이어 쓴 문자열을 하나의 문자열로 합칩니다.
- 16진수(
0xFF), 정수부나 소수부를 생략한 소수(.5,5.), 명시적인 플러스 기호(+3)를 일반 10진수로 바꿉니다. - 객체와 배열의 후행 쉼표를 제거합니다.
- 같은 키가 두 번 나오면 JavaScript와 마찬가지로 마지막 값이 사용됩니다.
자주 묻는 질문
› JSON5와 JSONC의 차이는 무엇인가요?
JSONC는 JSON에 주석을 더한 형식입니다(VS Code에서는 후행 쉼표도 허용). JSON5는 더 나아가 따옴표 없는 키, 작은따옴표 문자열, 여러 줄 문자열, 16진수, 정수부나 소수부를 생략한 소수, Infinity와 NaN을 허용합니다. JSON5는 JSONC의 상위 집합이므로 이 도구는 둘 다 읽을 수 있습니다.
› 주석이 유지되나요?
아니요. 표준 JSON에는 주석 문법이 없으므로 주석은 제거됩니다. 주석을 보존하려면 JSON5 파일을 원본으로 두고 거기서 JSON을 생성하세요.
› Infinity와 NaN은 어떻게 되나요?
엄격한 JSON으로는 표현할 수 없습니다. 기본값은 JavaScript의 JSON.stringify처럼 null로 바꾸는 것입니다. 문자열로 바꾸거나, 정확한 경로를 알려 주는 오류를 표시하도록 선택할 수도 있습니다.
› 데이터가 업로드되나요?
아니요. 파싱과 변환은 모두 브라우저에서 실행되므로 비밀 값이 담긴 설정 파일이 기기 밖으로 나가지 않습니다.