DevToolPal
한국어

JSON Lines ↔ JSON 변환기

JSON Lines(JSONL, NDJSON)를 JSON 배열로, JSON 배열을 JSON Lines로 변환합니다. 오류는 줄 번호와 함께 표시합니다.

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

옵션

방향
들여쓰기

입력

0자 · 0 B

출력

0자 · 0 B

기능

JSON Lines(JSONL 또는 NDJSON이라고도 함)는 한 줄에 JSON 값 하나를 저장합니다. 파일 전체를 읽지 않고도 레코드를 하나씩 읽거나 추가할 수 있어 로그, 데이터 내보내기, 스트리밍 API, BigQuery와 Elasticsearch 대량 적재, OpenAI 파인튜닝 파일 같은 머신러닝 데이터셋에 널리 쓰입니다.

하지만 많은 도구는 하나의 JSON 배열을 기대합니다. 이 변환기는 JSON Lines를 보기 좋은 JSON 배열로 바꾸고, JSON 배열을 한 줄에 레코드 하나씩 담긴 압축된 JSON Lines로 되돌립니다.

사용 방법

  1. 방향을 고릅니다: JSON Lines → JSON 또는 JSON → JSON Lines.
  2. 데이터를 붙여 넣거나 .jsonl, .ndjson, .json 파일을 업로드하거나 예제를 누릅니다.
  3. JSON으로 출력할 때는 2칸 또는 4칸 들여쓰기나 한 줄로 만드는 압축을 고릅니다.
  4. 결과를 복사하거나 다운로드하고, 입력으로 사용으로 다시 변환할 수도 있습니다.

어떤 줄이 올바른 JSON이 아니면 오류에 줄 번호와 열 번호가 표시되어 깨진 레코드로 바로 이동할 수 있습니다. 수천 건의 로그 중 한 줄만 잘려 있을 때 특히 유용합니다.

예시

다음 세 줄의 JSON Lines는:

{"id": 1, "event": "signup"}
{"id": 2, "event": "login"}
{"id": 3, "event": "logout"}

이 JSON 배열이 됩니다:

[
  {
    "id": 1,
    "event": "signup"
  },
  {
    "id": 2,
    "event": "login"
  },
  {
    "id": 3,
    "event": "logout"
  }
]

반대 방향으로 변환하면 배열의 각 요소가 공백 없이 한 줄씩 쓰이고 파일은 줄바꿈으로 끝납니다.

언제 무엇을 쓸까

레코드를 하나씩 만들거나 처리할 때는 JSON Lines를 쓰세요. 로그 추가, 결과 스트리밍, 큰 데이터셋을 여러 워커에 나누기, grep, head, wc -l 같은 줄 단위 도구로 처리하기 등이 해당합니다. 설정 파일, 테스트 픽스처, REST 엔드포인트 응답 본문처럼 프로그램이 전체 컬렉션을 한 번에 필요로 할 때는 JSON 배열을 쓰세요.

자주 묻는 질문

› JSONL, NDJSON, JSON Lines는 무엇이 다른가요?

같은 형식의 다른 이름입니다. 한 줄에 완전한 JSON 값 하나를 쓰고 줄바꿈으로 구분합니다. JSON Lines(.jsonl)와 줄바꿈 구분 JSON(.ndjson)은 이름과 확장자만 다릅니다.

› 빈 줄이 있어도 되나요?

읽을 때 빈 줄과 마지막 줄바꿈은 건너뜁니다. Windows 줄바꿈(CRLF)과 UTF-8 BOM도 처리합니다.

› 들여쓰기된 JSON이라 객체 하나가 여러 줄에 걸쳐 있습니다. 왜 오류가 나나요?

JSON Lines에서는 모든 값이 한 줄에 들어가야 합니다. 입력이 일반 JSON 배열이라면 방향을 JSON → JSON Lines로 바꾸세요. 들여쓰기된 객체가 이어져 있다면 먼저 배열로 묶으세요.

› 변환하면 숫자나 키 순서가 바뀌나요?

아니요. 값과 키 순서는 그대로이고 공백만 바뀝니다. JavaScript의 안전한 정수 범위(약 9천조)를 넘는 아주 큰 정수는 브라우저 기반 JSON 도구가 모두 그렇듯 정밀도를 잃을 수 있습니다.