가이드

JSON을 파싱해 공백 없이 축소하는 방법

유효한 JSON 텍스트를 입력하면 내용을 파싱한 뒤 공백이 추가되지 않은 JSON 텍스트로 다시 직렬화합니다. 문법이 잘못된 입력은 줄과 열 위치가 포함된 실패 결과로 처리됩니다.

도구 JSON 압축기

JSON 텍스트를 간결하게 다루는 경우

JSON Minifier는 JSON 텍스트를 먼저 해석한 뒤, 쉼표와 콜론 뒤에 불필요한 공백이 없는 JSON 텍스트로 다시 직렬화합니다. 줄바꿈과 들여쓰기가 많은 자료를 더 간결한 텍스트로 확인하고 싶을 때 사용할 수 있습니다. 이 작업은 글자 일부를 단순히 지우는 방식이 아닙니다. 입력을 JSON으로 파싱한 다음 구조에 맞춰 결과를 만듭니다. 따라서 변환 전에는 키와 값의 표기, 따옴표, 쉼표, 중괄호를 살펴보는 편이 좋습니다.

입력란에는 JSON을 담은 문자열을 넣습니다. 입력하지 않은 기본 상태도 별도로 처리됩니다. 유효한 JSON이면 변환 결과와 크기 정보를 확인할 수 있습니다. 결과를 이용해 들여쓰기나 줄바꿈이 결과에 남아 있는지 살펴볼 수 있습니다. 한글이 들어간 값도 결과에서 ASCII 이스케이프 표기로 강제되지 않습니다. 이 특성은 사람이 읽을 값의 표기를 확인할 때 참고할 수 있습니다.

검색어인 ‘JSON을 파싱해 공백 없이 축소하는 방법’은 자연스러운 검색 의도에 대한 가설입니다. 실제 검색 수요가 확인되었다는 뜻은 아닙니다.

입력부터 결과 확인까지

  1. 변환할 JSON 텍스트를 준비합니다. 객체의 키는 문자열로 작성합니다. 문자열 값도 따옴표로 감쌉니다. 숫자 값에는 따옴표를 임의로 붙이지 않습니다. 배열의 항목은 대괄호 안에 둡니다. 객체의 항목은 중괄호 안에 둡니다. 항목 사이에는 쉼표를 넣습니다. 키와 값 사이에는 콜론을 둡니다.

  2. 준비한 내용을 입력 영역에 붙여 넣습니다. 입력값은 문자열이어야 합니다. 줄바꿈이 있어도 JSON 문법에 맞으면 파싱 대상이 됩니다. 들여쓰기가 여러 단계여도 입력 자체가 유효하면 처리할 수 있습니다. 한글이나 다른 비ASCII 문자가 값에 포함되어도 입력할 수 있습니다. 빈 문자열은 일반적인 JSON 객체와 다른 특별한 경우로 다뤄집니다. 공백만 있는 내용도 같은 특별한 경우에 해당합니다.

  3. 실행 또는 변환에 해당하는 컨트롤을 선택합니다. 유효하고 공백이 아닌 JSON은 먼저 파싱됩니다. 파싱이 끝나면 결과가 JSON 텍스트로 직렬화됩니다. 결과에는 쉼표 뒤의 추가 공백이 들어가지 않습니다. 콜론 뒤의 추가 공백도 들어가지 않습니다. 입력의 구조를 해석한 뒤 결과를 만들므로, 공백만 골라 지우는 작업으로 이해하지 않습니다.

  4. 성공 결과의 JSON 텍스트를 확인합니다. 입력에 있던 들여쓰기와 줄바꿈이 간결한 표현으로 바뀌었는지 봅니다. 키와 값의 연결이 유지되는지도 살핍니다. 한글 값이 ASCII 이스케이프 시퀀스로 바뀌지 않았는지 확인할 수 있습니다. 결과가 비어 있다면 입력이 빈 문자열이었는지 공백뿐이었는지 먼저 구분합니다.

  5. 크기 측정값을 함께 읽습니다. 성공한 비어 있지 않은 입력에서는 입력 크기가 문자 수로 표시됩니다. 결과 크기도 문자 수로 표시됩니다. 절약된 크기는 음수가 되지 않습니다. 절약률은 소수 첫째 자리까지 반올림됩니다. 서식이 이미 간결하면 표시되는 절약값이 작을 수 있습니다. 직렬화된 결과가 더 짧아지지 않는 경우에도 절약률을 음수로 읽지 않습니다.

  6. 실패 결과가 나타나면 입력 종류를 확인합니다. 비어 있지 않고 공백만 있지 않은 잘못된 JSON은 성공 결과를 만들지 않습니다. 이 경우 감지된 줄과 열 위치를 문법을 다시 볼 지점으로 사용합니다. 문자열이 아닌 입력도 실패로 처리됩니다. 입력의 UTF-8 인코딩 크기가 1,000,000바이트를 넘으면 파싱 전에 거부됩니다. 따라서 큰 내용을 줄이기 전에 해당 바이트 조건을 먼저 살펴야 합니다.

  7. 문법을 고쳤다면 수정한 문자열을 다시 입력합니다. 빠진 쉼표를 보충합니다. 닫히지 않은 중괄호를 닫습니다. 키에 필요한 따옴표를 확인합니다. 값의 자료형을 의도에 맞게 다시 봅니다. 재실행 뒤에는 성공 여부와 결과 텍스트를 함께 확인합니다. 성공 여부만 보고 내용의 구조를 생략하지 않습니다.

성공, 빈 입력, 실패를 구분하는 법

성공 결과는 입력을 JSON으로 해석한 뒤 다시 만든 텍스트입니다. 그러므로 결과가 짧아 보인다는 사실만으로 단순 문자 삭제가 이루어졌다고 판단하지 않습니다. 줄바꿈과 들여쓰기가 줄어든 모습은 직렬화 결과의 특징입니다. 쉼표와 콜론 뒤의 불필요한 공백이 없는지도 결과에서 확인할 수 있습니다.

크기 정보는 성공한 비어 있지 않은 입력을 기준으로 읽습니다. 입력 크기와 결과 크기는 파일의 바이트 수가 아니라 문자 수입니다. 절약률은 한 자리 소수로 반올림된 값입니다. 표시된 절약값이 음수가 아니어도 실제 입력보다 결과가 짧다는 의미가 매번 성립하는 것은 아닙니다. 서식이 거의 없거나 직렬화 과정에서 길이가 줄지 않는 자료에서는 절약률이 0에 가까울 수 있습니다.

빈 문자열과 공백만 있는 입력은 성공한 특별한 경우입니다. 이때는 JSON 객체가 반환되는 것으로 해석하지 않습니다. 빈 결과가 나오고 크기 및 절약 측정값은 0입니다. 반대로 내용이 있으면서 문법이 틀린 입력은 실패 결과입니다. 실패 결과에 표시된 줄과 열은 입력을 고칠 때 참고할 위치입니다.

문자열이 아닌 입력은 성공적인 JSON 축소 결과로 볼 수 없습니다. 공백이 아닌 내용이 UTF-8 기준 1,000,000바이트를 넘는 경우도 성공 처리 대상이 아닙니다. 이 크기 조건은 파싱 전에 적용됩니다. 따라서 한도를 넘은 내용을 문법 문제로만 해석하지 않습니다. 입력이 한도 안에 있고 문법도 유효한지 함께 확인합니다.

한글 같은 비ASCII 문자는 ASCII 이스케이프 시퀀스로 강제되지 않습니다. 결과를 다른 곳에 사용하기 전에는 키와 값이 기대한 순서와 내용으로 보이는지 따로 검토합니다. 이 도구의 결과만으로 데이터의 의미나 사용 목적까지 판정하지는 않습니다.

사용 예시

한글 이름을 포함한 JSON을 다른 곳에 전달하기 전에 간결한 텍스트와 크기 측정값을 확인하려는 상황입니다.

입력 영역에 {"name": "민수", "age": 20}이라는 유효한 JSON 문자열을 넣은 뒤 변환 컨트롤을 선택합니다. 결과에서는 {"name":"민수","age":20}처럼 쉼표와 콜론 뒤의 추가 공백이 없는 텍스트 형태를 확인합니다.

성공 결과에는 공백이 줄어든 JSON 텍스트가 포함되고, 입력 크기와 결과 크기 및 음수가 아닌 절약률을 함께 확인할 수 있습니다.

제한 사항

  • 잘못된 JSON, 문자열이 아닌 입력, 1,000,000바이트를 넘는 공백 외 입력은 성공적인 축소 결과가 되지 않습니다. 절약률이 음수가 아니라는 표시도 입력이 실제로 더 짧아졌다는 보장은 아닙니다.

자주 발생하는 오류

  • 키에 따옴표가 없거나 쉼표와 닫는 괄호가 빠진 문자열을 제출하면 유효한 JSON으로 파싱되지 않습니다. 실패 결과의 줄과 열을 기준으로 해당 문법을 고친 뒤 다시 실행합니다.

자주 묻는 질문

입력을 비워 둔 상태에서도 실행할 수 있나요?

조건에 따라 가능합니다. 빈 문자열이나 공백만 입력한 경우에는 빈 결과가 나오며 크기와 절약 측정값은 0으로 처리됩니다.

JSON 문법이 틀리면 어떤 결과가 나오나요?

비어 있지 않고 공백만 있지 않은 잘못된 JSON이면 성공 결과가 나오지 않습니다. 결과에 포함된 줄과 열 위치를 확인해 해당 문법을 수정해야 합니다.

입력 크기에 제한이 있나요?

제한이 있습니다. 공백이 아닌 입력은 UTF-8 인코딩 기준 1,000,000바이트 이하일 때 파싱 대상이 되며, 이 값을 넘으면 파싱 전에 거부됩니다.

도구

JSON 압축기