자주 묻는 질문

JSON 포매팅, 수리, 검증 및 데이터 안전성에 대한 자주 묻는 질문들입니다.

자주 묻는 질문

유효하지 않은 JSON을 온라인에서 포매팅할 수 있나요?
네. 깨진 JSON을 붙여 넣고 Repair & Format을 클릭하세요. 단일 따옴표, 후행 쉼표, JSON 키의 따옴표 누락, 주석, Python 스타일 값 등을 먼저 수리한 뒤 깔끔하게 포매팅된 출력을 보여 줍니다.
깨진 JSON은 어떻게 포매팅하나요?
안전하게 붙여 넣을 수 있는 가장 작은 샘플부터 시작해 구문을 수리한 다음, 엄격한 JSON 파서로 결과를 검증하세요. 후행 쉼표가 있는 페이로드라면, 마지막 쉼표를 먼저 제거하고 유효해진 결과를 포매팅하면 됩니다.
「Unexpected token」은 무슨 뜻인가요?
엄격한 JSON에서 그 위치에 올 수 없는 문자를 파서가 발견했다는 의미입니다. 단일 따옴표, 슬래시, 후행 쉼표, 대문자 True 같은 것이 자주 등장한다면 보통 JavaScript・Python・AI 응답에서 복사한 「거의 JSON」이라는 신호입니다.
JSON을 JavaScript 객체로 변환할 수 있나요?
네. 입력이 유효한 JSON이라면 JavaScript에서 JSON.parse(jsonText)를 사용하세요. 텍스트가 JavaScript 객체 리터럴이라면, 먼저 엄격한 JSON으로 수리한 다음 파싱하세요.
내 데이터는 안전한가요?
네. 이 도구는 브라우저 안에서 JavaScript로 완전히 동작하며, 어떤 데이터도 서버로 전송되지 않습니다.
Repair와 Validate의 차이는 무엇인가요?
Repair는 흔한 오류를 허용하면서 유효한 JSON을 만들어내려 합니다. Validate는 엄격한 파서를 사용해 오류의 정확한 행과 열을 알려 줍니다.

자세한 사용 가이드

대부분의 JSON 포매터는 파서가 오류를 던지면 그 자리에서 멈춥니다. 이 도구는 그 「일반적인 포매팅 직전 단계」를 위해 설계되었습니다 — 거의 JSON을 엄격한 JSON으로 변환한 뒤 결과를 보기 좋게 정렬해 구조를 검토할 수 있도록 해 줍니다. 그래서 단순히 「유효한 응답을 예쁘게 출력하는 방법」이 아니라 「깨진 JSON을 어떻게 포매팅할까」를 찾고 있을 때 유용합니다.

안전하게 붙여 넣을 수 있는 가장 작은 깨진 JSON 조각부터 시작하세요. 텍스트가 JavaScript 객체 리터럴, Python 스니펫, Markdown 응답, 손으로 편집한 설정, 또는 JSON처럼 보이지만 엄격한 파서에서 실패하는 로그 출력이라면 Repair & Format을 클릭하세요. 수리 단계는 흔한 구문 오류를 유효한 JSON으로 정규화한 다음, 예측 가능한 들여쓰기로 출력해 중첩된 배열과 객체도 검토하기 쉽게 만들어 줍니다.

수리 후에는 Validate를 클릭하세요. 검증은 엄격한 파서를 사용하며, API 클라이언트, 애플리케이션 설정, DB 마이그레이션, 테스트 픽스처, 커맨드라인 예시에 출력을 복사하기 전 마지막 확인 단계여야 합니다. 검증이 실패하면 행과 열을 읽고, 강조된 토큰을 살펴보고, 입력과 수리된 출력을 비교하세요. 수리는 구문 정리만 담당할 뿐, 값이 애플리케이션 의미상 옳은지를 판단하지는 않습니다.

JSON이 유효해진 뒤에만 Minify를 사용하세요. 압축된 JSON은 환경 변수, 쿼리 파라미터, 압축 로그, 문서 내 짧은 예시에 적합합니다. 코드 리뷰・디버깅・API 테스트에는 모든 키, 배열 요소, 중첩 값이 예측 가능한 줄에 놓이는 포매팅된 출력이 더 안전합니다.

JSON 오류 사전

후행 쉼표
} 또는 ] 앞의 마지막 쉼표는 많은 JavaScript 도구는 받아들이지만 JSON 파서는 거부합니다. 마지막 속성이나 배열 요소 뒤의 쉼표를 제거하세요.
JSON 키의 따옴표 누락
name이나 active 같은 객체 키는 큰따옴표로 감싸야 합니다. { name: "Ada" }{ "name": "Ada" }로 바꾸세요.
단일 따옴표
JSON 문자열에는 큰따옴표가 필요합니다. 'Ada'"Ada"로 바꾸고, 문자열 안의 아포스트로피에도 주의하세요.
Unexpected token
엄격한 JSON 문법이 허용하지 않는 위치에 문자가 등장했다는 메시지입니다. 토큰은 쉼표, 슬래시, 단일 따옴표, 대문자 불리언, 또는 JSON 문서 뒤의 추가 텍스트일 수 있습니다.
Python 리터럴
Python은 TrueFalseNone을 사용합니다. JSON은 truefalsenull을 사용합니다.
주석
주석은 JavaScript와 JSONC에서는 흔하지만 유효한 JSON은 아닙니다. JSON 파서에 데이터를 보내기 전에 // 라인 주석과 /* 블록 주석 */을 제거하세요.
Markdown 코드 펜스
LLM 응답은 종종 JSON을 ```json 펜스로 감쌉니다. 파싱이나 API 전송 전에 펜스 표시를 제거하세요.

도구별 질문

JSON Fix — 유효하지 않은 JSON을 어떻게 수리하나요?
깨진 JSON을 JSON Fix에 붙여 넣고 Repair & Format을 클릭하세요. 후행 쉼표, 단일 따옴표, 따옴표 없는 키, Python 리터럴, 주석, Markdown 코드 펜스를 한 번에 수리합니다.
JSON Validate — 검증과 파싱의 차이는 무엇인가요?
파싱은 JSON을 사용 가능한 값으로 바꿉니다; 검증은 단순히 파싱이 가능했는지를 확인합니다. 성공한 JSON.parse 자체가 검증입니다 — 자세한 내용은 JSON Validator를 참조하세요.
JSON Viewer — 트리가 비어 있는 이유는?
트리는 파싱 가능한 JSON에서만 만들어집니다. 먼저 JSON Fix로 흔한 오류를 수리한 뒤, 정리된 결과를 JSON Viewer에 로드하세요.
JSON Diff — 정렬된 버전과 정렬되지 않은 버전이 동일하다고 나오는 이유는?
JSON 객체는 사양상 순서가 없습니다. JSON Diff는 비교 전에 키를 정규화하므로 실제 값 차이만 표시됩니다.
JSON to TypeScript — 생성된 타입은 런타임에 검증되나요?
아니요. JSON to TypeScript는 컴파일 타임 인터페이스를 생성합니다. 런타임 검증은 Zod와 함께 사용하거나, JSON Schema로 형태를 기술하세요.
JSON Minify — 압축으로 얼마나 절약되나요?
HTTP 압축 전에 보통 15–50% 절약됩니다. 서버가 이미 Content-Encoding: gzip 또는 br을 보낸다면 minify의 한계 절약 효과는 작아집니다.
JSON Stringify — 두 번 인코딩된 JSON 문자열은 어떻게 디코딩하나요?
JSON Stringify에서 Unstringify를 클릭하거나, 입력이 이스케이프된 따옴표로 시작한다면 JSON.parse를 두 번 호출하세요.
JSON ⇄ CSV — 중첩 객체는 어떻게 표현되나요?
각 중첩 객체나 배열은 셀 안에 JSON 텍스트로 작성되어 변환이 가역적으로 유지됩니다. 자세한 내용은 JSON to CSV를 참조하세요.
JSON ⇄ XML — 값을 XML 속성으로 만들려면?
키 앞에 @를 붙이세요 (예: @id). 요소 텍스트는 #text 아래에 놓이고, 배열은 반복 요소가 됩니다. 자세한 내용은 JSON to XML를 참조하세요.
YAML — YAML 파싱이 실패하는 이유는?
거의 항상 들여쓰기 문제입니다 — 탭 문자(YAML은 탭을 금지)나 형제 항목의 들여쓰기 불일치. YAML 포매터에 한 번 통과시키면 두 가지 모두 드러나고 정규화됩니다.
Base64 — Base64와 Base64url의 차이는?
표준 Base64는 +/를 사용하고 =로 패딩합니다. URL 안전 Base64url은 이를 -_로 대체하고 패딩을 제거하므로 URL과 JWT에서 안전합니다. 자세한 내용은 Base64를 참조하세요.
URL Decode — +가 공백으로 디코딩되지 않는 이유는?
쿼리 문자열에서 공백은 +(폼 인코딩) 또는 %20으로 나타날 수 있습니다. decodeURIComponent+를 공백으로 바꾸지 않습니다 — 폼 인코딩 데이터라면 먼저 직접 치환하세요. 자세한 내용은 URL Decode를 참조하세요.
JWT Decode — 서명을 검증하나요?
아니요. JWT Decode는 claim을 읽지만, 서명은 확인하지 않습니다. 항상 서버 측에서 검증하고, 라이브러리에 기대하는 정확한 알고리즘을 설정하세요 (alg: none은 절대 받아들이지 마세요).

어떤 오류 글을 봐야 할까요?

정확한 오류 메시지가 있다면, 해당 글로 바로 이동하세요:

로컬 처리는 어떻게 프라이버시를 보호하는가

수리, 검증, 포매팅, 압축, 복사 작업은 모두 브라우저 탭 안에서 실행됩니다. 이 도구는 JSON을 처리하기 위해 업로드 엔드포인트가 필요하지 않습니다. API 샘플, Webhook 페이로드, 내부 설정 스니펫, 또는 비공개 식별자를 포함할 수 있는 디버그 출력에 중요한 부분입니다. 어떤 웹사이트든 예시를 붙여 넣기 전에 비밀 정보는 제거해야 하지만, 이 도구는 핵심 JSON 워크플로가 「로컬 우선」으로 동작하도록 설계되어 있습니다.

사이트는 페이지 주변에서 호스팅 로그와 분석 스크립트를 사용할 수 있으며, 자세한 내용은 개인정보 처리방침에 설명되어 있습니다. 이러한 시스템은 수리를 위해 에디터에 붙여 넣은 내용을 받지 않아야 합니다. 페이로드에 자격 증명, 액세스 토큰, 고객 기록 또는 운영 환경 비밀이 포함되어 있다면, 디버깅 전에 안전한 자리표시자로 교체하세요.

JSON이 무엇이고 왜 엄격한가

JSON은 JavaScript Object Notation의 약자이지만, 현대의 JSON은 언어 독립적입니다. Python, Go, Java, PHP, Ruby, Rust, 데이터베이스, 큐, 로그 시스템, 브라우저 코드 모두 같은 JSON 문서를 읽을 수 있는 이유는 문법이 의도적으로 작게 유지되었기 때문입니다. 이 엄격함은 유용합니다 — JSON 파서는 함수, 생성자, 날짜, 주석, 표현식을 실행하지 않고, 오직 데이터만 받아들입니다.

그 대신, JavaScript 객체 리터럴, Python 딕셔너리, TypeScript 설정, Markdown 답변에서 복사한 텍스트는 익숙해 보이면서도 여전히 유효하지 않은 JSON일 수 있습니다. 수리 기능은 이런 「거의 JSON」을 엄격한 파서가 받아들일 수 있는 데이터로 변환해 줍니다.

수리된 JSON을 사용하기 전에

수리가 성공했다는 것은 텍스트가 유효한 JSON 구문으로 변환될 수 있음을 의미할 뿐이며, 페이로드가 엔드포인트나 애플리케이션에 대해 옳다는 증명이 되지는 않습니다. 운영 환경에서 수리된 JSON을 사용하기 전에 필수 필드, 알 수 없는 키, 값 타입, 배열 길이, 날짜 형식, enum 값, null 처리, 식별자가 문자열인지 숫자인지를 확인하세요.

페이로드가 권한, 결제, 데이터 삭제, 고객에게 보이는 동작을 제어한다면, 수리 후 알려진 양호한 샘플이나 스키마와 비교하세요. API 작업에서는 구문을 먼저 검증한 다음, 비즈니스 계약을 검증합니다.