JSONL·NDJSON과 JSON 배열의 차이: 줄별 로그를 변환하는 방법
DataWork Tools 편집 · 2026년 11월 3일
API에서 받은 데이터는 JSON 배열인데 로그와 배치 처리 시스템은 한 줄마다 객체 하나를 요구하는 경우가 있습니다. JSONL 또는 NDJSON은 JSON 문서 여러 개를 줄바꿈으로 나눈 텍스트 형식입니다. 단순히 대괄호와 쉼표를 지우는 작업으로 바꾸면 문자열 안의 쉼표와 줄바꿈을 손상시킬 수 있습니다.
JSON 배열과 JSONL 예제
JSON 배열
[
{"사번":"0012","활성":true},
{"사번":"0024","활성":false}
]
JSONL
{"사번":"0012","활성":true}
{"사번":"0024","활성":false}배열은 전체가 하나의 JSON 문서이고, JSONL은 각 줄이 독립적인 JSON 값입니다. 두 형식 모두 사번을 문자열로 두면 앞자리 0을 유지할 수 있습니다. JSONL의 각 줄에는 객체뿐 아니라 배열·문자열·숫자·true·false·null도 올 수 있습니다.
UTF-8, BOM, 마지막 줄바꿈
JSON Lines 형식 안내는 UTF-8을 사용하고 BOM을 넣지 않도록 설명합니다. 각 줄은 유효한 JSON 값이어야 하며 마지막 줄바꿈은 허용됩니다. 이 도구의 JSONL 다운로드도 UTF-8·BOM 없음으로 생성하고 레코드가 있으면 마지막 줄바꿈을 붙입니다.
빈 줄과 오류가 있는 줄은 다릅니다
빈 줄은 유효한 JSON 값이 아니므로 기본적으로 줄 번호와 함께 오류가 납니다. 실무 파일에 섞인 빈 줄만 정리하려면 빈 줄 건너뛰기를 명시적으로 켜세요. 문법이 틀린 줄까지 건너뛰는 기능은 제공하지 않습니다. 100건을 넣고 99건만 나오는 누락을 숨기지 않기 위해서입니다.
문자열 내부의 줄바꿈
한 레코드의 문자열 안에서 줄바꿈은 \n과 같은 JSON 이스케이프로 표현해야 합니다. 따옴표 안에 실제 개행을 넣어 두 물리적 줄로 나누면 유효한 JSONL이 아닙니다. 도구는 JSON 배열을 파싱한 뒤 각 항목을 한 줄로 직렬화해 문자열 안의 개행을 이스케이프합니다.
큰 ID와 숫자 표기를 확인하세요
브라우저가 안전하게 표현할 수 없는 큰 정수는 문자열로 감싸야 합니다. 소수는 브라우저 숫자 정밀도를 따르므로 금융 계산의 원문 보존용으로 사용하지 마세요. 1.0이 1로, 이스케이프 문자가 실제 문자로 바뀌는 등 데이터 의미가 같아도 원문 표현은 달라질 수 있습니다. 중복된 객체 키는 파서가 마지막 값을 남기므로 원본 작성 단계에서 없애는 것이 좋습니다.
변환 결과 검수
- 입력 레코드 수와 결과 수를 비교합니다.
- 앞자리 0, null, 배열 내부 순서와 문자열 개행을 확인합니다.
- 다운로드 확장자가 .json 또는 .jsonl인지 확인합니다.
- JSONL을 CSV로 옮길 때는 JSON 배열로 변환한 뒤 JSON → CSV를 이용합니다. CSV 변환은 평평한 객체 배열만 지원합니다.
함께 읽기
CSV 한글이 깨질 때: UTF-8과 EUC-KR 구분하기
사번 0012가 12로 바뀌는 이유와 보존 방법
CSV를 SQL INSERT로 바꾸기 전 확인할 5가지
중복 제거에서 전체 행과 기준 열은 어떻게 다를까?
두 CSV 파일 비교: 추가·삭제·변경 행을 찾는 방법
VLOOKUP 없이 두 CSV 합치기: LEFT와 INNER JOIN 차이
CSV 열 순서 바꾸기·열 이름 변경·불필요한 열 삭제
JSON을 CSV로 변환할 때 빈칸·중첩 데이터·큰 숫자 확인하기
JSON 문법 오류 찾기: 따옴표·쉼표·큰 숫자 검수 방법
CSV 파일 분할과 행·열 전치: 처리 순서와 결과 검수
CSV 공백과 빈 행 정리: 지워도 되는 값부터 구분하기
CSV와 TSV 차이: 엑셀에서 복사한 표를 파일로 바꾸기
CSV를 Markdown 표로 만들기: README에 표 붙여넣는 방법
CSV 정렬에서 10이 2보다 먼저 나오는 이유: 문자열과 숫자 정렬
CSV에서 필요한 행만 추출하기: 포함·일치·빈값 필터의 차이
JSON 비교에서 키 순서와 실제 데이터 변경을 구분하는 방법
2026 연봉 실수령액: 지급 월·부양가족·비과세액이 달라지는 이유
내 연봉은 상위 몇 퍼센트? 월소득 통계 구간으로 읽는 법
3.3% 계산과 역산: 원천징수액과 최종 세금은 다릅니다
부가세 포함과 별도: 공급가액을 1.1로 나누는 이유
시급에서 월급으로: 209시간을 모두에게 적용하면 안 되는 이유
연봉 인상률 계산: 월 증가액과 실수령 증가액 구분하기
퇴직금 예상액: 최근 3개월·평균임금·통상임금 확인하기
주휴수당 계산: 실제 근무시간과 소정근로시간 구분하기