JSON5 온라인 파싱

로컬 처리
app.json5.view

다음으로도 #data={"name":"Ada"} 또는 #url=... 데이터를 넣을 수 있으며, 읽은 뒤 주소 표시줄에서 지워집니다.

JSON5는 설정을 쓸 때 더 느슨한 상위 집합입니다. 주석, 후행 쉼표, 작은따옴표, 따옴표 없는 키 이름을 허용합니다. 이 페이지는 파싱한 뒤 표준 JSON을 내어 API나 다른 도구에 넘기기 쉽게 합니다. VS Code, webpack 설정, 손으로 쓴 JS 객체에서 복사한 내용은 종종 바로 JSON.parse 할 수 없으니 먼저 이 페이지를 거치세요.

주석을 받아냄

한 줄 // 과 여러 줄 /* */ 은 모두 버려지고 데이터만 남습니다. 중요한 설명은 README에 따로 두고, 주석이 표준 JSON에 들어가리라 기대하지 마세요.

「사람이 보는 설정」을 「프로그램이 읽는 JSON」으로 바꾸는 한 단계에 맞습니다.

후행 쉼표

객체와 배열의 마지막 항목 뒤 쉼표 때문에 파싱이 실패하지 않습니다. JS / TS 객체 리터럴을 복사할 때 가장 흔한 오류 원인이기도 합니다.

변환 출력은 후행 쉼표를 남기지 않아 RFC 8259에 맞습니다.

출력은 여전히 표준 JSON

결과는 JSON.parse 과 대부분의 백엔드에서 바로 쓸 수 있습니다. 키 이름에는 큰따옴표가 보태지고, 작은따옴표 문자열은 큰따옴표로 바뀝니다.

변환 후 이어서 포맷, 검증, Schema 생성을 할 수 있습니다.

예시

JSON5 입력
{
  // 功能开关
  name: 'json5',
  enabled: true,
  tags: ['a', 'b',],
}
표준 JSON
{
  "name": "json5",
  "enabled": true,
  "tags": [
    "a",
    "b"
  ]
}
주석이 남나요?

아니요. 표준 JSON에는 주석이 없어 변환 후 주석은 버려집니다.

JSONC와 같은 것인가요?

JSONC는 보통 주석만 더하고, JSON5는 키 이름, 따옴표, 숫자 표기까지 완화합니다. 이 페이지는 JSON5 규칙으로 파싱합니다.

Infinity / NaN을 지원하나요?

JSON5는 이런 숫자 표기를 허용합니다. 표준 JSON으로 바꾼 뒤 하위가 받는지는 파서에 달렸으니 뽑아 확인하세요.

완전한 JS 실행기로 쓸 수 있나요?

아니요. 데이터 리터럴만 파싱하며 함수를 실행하거나 식을 계산하지 않습니다.

권장 워크플로

  1. 설정 파일이나 코드에서 주석, 후행 쉼표가 있는 조각을 복사하세요.
  2. 이 페이지에 붙여넣고 오른쪽 출력이 JSON.parse 할 수 있는 표준 JSON인지 확인하세요.
  3. 결과를 API, 테스트 fixture, 다른 도구 페이지로 복사하세요.
  4. 사람이 계속 편집하고 주석을 남기려면 JSON에 억지로 넣기보다 YAML을 고려하세요.

JSON5는 「사람이 쓰고, 기계가 읽기 전에 정규화」할 때 맞습니다. 대외 API는 표준 JSON만 받아, 클라이언트가 제각각 상위 집합을 쓰지 않게 하세요.