JSONL(JSON Lines) ↔ JSON 배열 변환기
JSON Lines(NDJSON)와 보기 좋은 JSON 배열을 입력하는 즉시 서로 변환하며, 잘못된 줄은 정확한 줄 번호로 표시합니다.
.jsonl, .ndjson, .json, .txt 파일을 이 상자에 끌어다 놓아도 됩니다.
파일 열기와 끌어다 놓기는 10.0 MB까지의 파일을 상자에 넣습니다. 큰 파일 변환…으로 고르거나 더 큰 파일을 상자에 끌어다 놓으면 200.0 MB까지 받아 UTF-8로 조금씩 읽고, 여기에는 앞쪽 레코드만 보여 주며 배열 전체는 내려받기로 줍니다.
한 줄에 하나씩 놓인 JSON과 배열 사이
JSON Lines(NDJSON, 줄바꿈으로 구분된 JSON)는 한 줄에 JSON 값 하나를 저장하는 형식으로, 로그나 스트리밍에는 알맞지만 읽거나 배열을 기대하는 코드에 붙여넣기에는 불편합니다. 이 변환기는 JSONL 블록을 깔끔하게 들여쓴 JSON 배열로 바꾸고, 반대로 JSON 배열을 각 요소가 한 줄씩 놓인 JSONL로 되돌립니다. 두 입력창은 서로 연결되어 있어 어느 쪽을 수정하든 즉시 반대쪽이 다시 만들어집니다. 빈 줄은 무시되며 객체·배열·숫자·문자열·불리언·null 등 모든 값 유형을 지원합니다. 일부 API나 대량 가져오기 엔드포인트처럼 배열을 객체 안에 담아 달라는 곳을 위해, “배열을 이 키 아래에 넣어 객체로 감싸기” 칸에 키를 적으면 JSON 쪽이 {"records": [ … ]} 모양이 됩니다. 이런 객체를 JSON 칸에 붙여넣으면 거꾸로 줄로 풀리고 그 키가 칸에 들어갑니다. 상자에 넣기에 너무 큰 파일은 “큰 파일 변환…”으로 바꿉니다. 조금씩 나눠 읽어 어느 상자에도 넣지 않고, 페이지에는 개수와 앞쪽 레코드만 보여 주며 배열 전체는 내려받기로 줍니다.
어느 방향으로 쓸까
내보낸 로그 줄, 데이터베이스 덤프, API 스트림을 JSON.parse로 불러오거나 설정 파일에 붙여넣을 하나의 유효한 배열이 필요할 때는 JSONL → JSON 배열 방향을 씁니다. 반대로 BigQuery, jq, 대량 가져오기 엔드포인트처럼 배열 대신 줄바꿈으로 구분된 레코드를 요구할 때는 JSON 배열 → JSONL 방향을 씁니다. 특정 줄을 파싱할 수 없으면 몇 번째 줄이 문제인지 알려 주어 빠르게 고칠 수 있습니다.
자주 묻는 질문
JSONL과 JSON 배열의 차이는 무엇인가요?
JSON 배열은 모든 항목을 하나의 [ ... ] 구조 안에 쉼표로 구분해 담지만, JSONL(NDJSON)은 각 항목을 감싸는 대괄호나 쉼표 없이 한 줄에 하나의 JSON 값으로 씁니다. JSONL은 이어 붙이거나 한 줄씩 스트리밍하기 쉽고, JSON 배열은 하나의 파싱 가능한 문서입니다.
빈 줄이나 잘못된 줄은 어떻게 처리되나요?
빈 줄이나 공백만 있는 줄은 건너뛰므로 끝의 줄바꿈이 빈 항목을 만들지 않습니다. 내용이 있는 줄이 유효한 JSON이 아니면 변환을 멈추고 문제가 되는 줄 번호(1부터 시작)를 정확히 알려 주어 바로 찾아 고칠 수 있습니다.
JSON 배열의 모양을 고르거나 파일을 끌어다 놓을 수 있나요?
네. 출력은 두 칸이나 네 칸 들여쓰기, 또는 한 줄로 압축한 형태 중에서 고를 수 있고, JSONL 파일을 입력 칸에 바로 끌어다 놓을 수 있습니다.
변환된 레코드가 몇 개인지 알려 주나요?
네. JSONL을 JSON으로 바꿀 때마다 결과 아래에 비어 있지 않은 줄 몇 개에서 레코드 몇 개가 나왔는지 한 줄로 알려 주므로, 내보낸 데이터에 기대한 만큼 들어 있는지 괄호를 세지 않고 확인할 수 있습니다. "잘못된 줄 건너뛰기"를 켜면 같은 줄에 잘못되어 건너뛴 줄이 몇 개인지와 그 줄 번호도 나옵니다. 번호는 앞쪽 몇 개만 적고 나머지는 개수로 알려 줍니다. 끄면 첫 번째 잘못된 줄에서 변환을 멈추고 아무것도 세지 않습니다.
JSON을 { "records": [ … ] }처럼 객체로 감쌀 수 있나요?
네. “배열을 이 키 아래에 넣어 객체로 감싸기” 칸에 키를 적으면 배열이 그 키 아래에, 고른 들여쓰기 그대로 들어갑니다. 칸을 비워 두면 배열만 나옵니다. 거꾸로도 됩니다 — 배열 하나를 키 하나 아래에 담은 객체를 JSON 칸에 붙여넣으면 줄로 풀리고 그 키가 감싸기 칸에 들어가므로, 두 칸은 계속 서로의 역변환입니다. 그 밖의 객체는 거부하며, 안내 문구가 받아들이는 감싼 모양을 알려 줍니다.
상자에 넣을 수 있는 것보다 큰 파일도 변환할 수 있나요?
네. “큰 파일 변환…”으로 고르거나 상자에 끌어다 놓으면, 어느 상자에도 넣지 않고 UTF-8로 조금씩 읽어 그때 고른 들여쓰기·감싸기 키·“잘못된 줄 건너뛰기” 설정대로 변환합니다. 그런 다음 비어 있지 않은 줄 몇 개에서 레코드 몇 개가 나왔는지 알려 주고, 앞쪽 레코드를 미리 보여 주며, 배열 전체를 원래 파일 이름을 딴 .json 파일로 내려받게 합니다. 다른 인코딩의 파일은 추측하지 않고 거부하며, 받을 수 있는 가장 큰 크기는 버튼 아래에 적혀 있습니다.