본문으로 건너뛰기

JSON Lines 변환

JSON Lines Converter

NDJSON과 JSON 배열을 상호 변환하며, 깨진 줄은 변환을 멈추는 대신 줄 번호로 알려 줍니다.

JSON 배열을 JSON Lines — 한 줄에 레코드 하나, 로그 파이프라인과 BigQuery가 원하는 형식 — 으로 바꾸고, 반대로도 되돌립니다. 구분자가 아예 없이 이어진 JSON 값들도 읽습니다. 여러 로깅 라이브러리가 그렇게 내보내고 `JSON.parse`는 그냥 거절하는 형태입니다.

🔒 브라우저 안에서만 처리jsonlndjsonconvertstream
변환

입력

.json·.jsonl·.ndjson 파일 놓기

이 탭에서 읽습니다. 올라가지 않습니다.

JSON 배열, 또는 구분자가 아예 없는 값의 연속을 받습니다. 후자는 여러 로깅 라이브러리가 내보내는 형태이고 `JSON.parse`가 거절하는 형태입니다.

출력

미리보기

앞부분 레코드를 표로 본 것.
tslevelmsgms
2025-08-27T09:00:00Zinfostarted12
2025-08-27T09:00:04Zwarnslow query2100
2025-08-27T09:00:09Zerrorupstream 502

앞의 200개 레코드에서 모든 키를 모은 것입니다.

레코드

3

입력

246byte

출력

209byte

사용 방법

  1. 방향을 고릅니다

    스트리밍으로 먹이는 쪽이면 배열에서 줄로, 로그 파일을 하나의 문서로 다루고 싶으면 줄에서 배열로 갑니다.

  2. 파일을 놓습니다

    `.json`, `.jsonl`, `.ndjson`을 받습니다. NDJSON과 JSON Lines는 이름만 둘일 뿐 같은 형식입니다.

  3. 파싱되지 않은 줄을 확인합니다

    깨진 줄이 있어도 변환이 멈추지 않습니다. 줄 번호와 실패한 텍스트를 함께 나열하는데, 대개 로테이션된 로그 끝에서 잘린 레코드입니다.

  4. 미리보기로 모양을 봅니다

    앞 200개 레코드의 키를 모두 모아 표로 보여 줍니다. 로그 줄의 절반에만 어떤 필드가 있다는 걸 알아채는 가장 빠른 방법입니다.

자주 묻는 질문

JSON Lines와 NDJSON은 뭐가 다른가요?

실질적인 차이는 없습니다. 같은 관례를 두 이름으로 부르는 것입니다. 한 줄에 JSON 값 하나, 줄바꿈으로 구분, 감싸는 배열 없음. 도구마다 확장자를 다르게 쓸 뿐이고 여기서는 둘 다 읽습니다.

수 기가바이트짜리 로그 파일도 되나요?

안 됩니다. 파일 전체를 탭으로 읽어 메모리에서 변환하고 결과를 또 하나의 문자열로 들고 있습니다. 실질적인 한계는 수십 메가바이트입니다. 그보다 크면 명령줄의 `jq -c`가 맞는 도구이고, 그쪽은 스트리밍합니다.

키는 왜 정렬하나요?

JSON Lines는 보통 `diff`로 비교하고, `diff`는 줄 단위 비교이기 때문입니다. 같은 데이터를 두 번 내보냈는데 키 순서가 다르면 줄이 완전히 달라집니다. 정렬하면 같은 글자가 됩니다.

중첩된 객체는 어떻게 되나요?

중첩된 채로 있습니다. JSON Lines의 레코드는 완전한 JSON 값이라 중첩이 문제되지 않고 아무것도 펼치지 않습니다. 열로 펴야 한다면 JSON→CSV 도구가 펼치는 쪽입니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.