DevToolPal
한국어

JSON5 → JSON 변환기

JSON5 또는 JSONC(주석, 후행 쉼표, 따옴표 없는 키, 작은따옴표)를 엄격한 표준 JSON으로 변환합니다.

로컬에서 실행, 업로드 없음

옵션

들여쓰기

입력

0자 · 0 B

출력

0자 · 0 B

이 도구는

JSON5는 사람이 직접 작성하는 파일을 위해 설계된 JSON 확장입니다. 주석, 후행 쉼표, 따옴표 없는 객체 키, 작은따옴표 문자열, 그리고 좀 더 편한 숫자 표기를 허용합니다. Babel, 일부 번들러와 많은 애플리케이션이 설정 파일로 JSON5나 JSONC(주석이 있는 JSON으로, tsconfig.json과 VS Code 설정에서 사용)를 받아들입니다.

하지만 많은 파서, API, 프로그래밍 언어는 엄격한 JSON만 받습니다. 이 변환기는 JSON5나 JSONC를 읽어 어떤 JSON 파서든 받아들이는 표준 JSON을 출력합니다. 모든 키는 큰따옴표로 감싸고, 주석과 후행 쉼표는 없으며, 숫자는 10진수로 씁니다.

사용 방법

  1. JSON5나 JSONC를 붙여 넣거나, .json5, .jsonc, .json 파일을 업로드하거나, 예시 를 누릅니다.
  2. 들여쓰기 를 고릅니다: 2칸 또는 4칸, 한 줄로 출력하려면 압축.
  3. Infinity와 NaN 처리 방식을 고릅니다: null로 변환, 문자열로 변환, 또는 오류 표시.
  4. 생성된 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로 바꾸는 것입니다. 문자열로 바꾸거나, 정확한 경로를 알려 주는 오류를 표시하도록 선택할 수도 있습니다.

› 데이터가 업로드되나요?

아니요. 파싱과 변환은 모두 브라우저에서 실행되므로 비밀 값이 담긴 설정 파일이 기기 밖으로 나가지 않습니다.