위키득계정 ↗
기술

JSON Lines

JSON Lines기술
문자 인코딩
UTF-8
기록 단위
줄마다 하나의 JSON 값
일반 확장자
.jsonl
줄 구분
LF 또는 CRLF
JSON Lines는 한 줄마다 하나의 JSON 값을 저장하는 텍스트 형식이다. 전체 자료를 하나의 배열로 묶지 않고 기록 단위로 읽을 수 있어 로그와 자료 교환, 셸 파이프라인에 활용한다.

줄 단위로 독립적인 값

각 줄은 그 자체로 올바른 JSON 값이어야 한다. 객체와 배열뿐 아니라 문자열이나 숫자, null도 사용할 수 있다. 빈 줄은 JSON 값이 아니므로 유효한 기록으로 취급하지 않는다. 하나의 값을 보기 좋게 여러 줄로 펼치면 줄마다 값이 완성되어야 한다는 규칙에 맞지 않는다.

인코딩과 마지막 줄

UTF-8을 사용하고 파일 시작에 바이트 순서 표시는 넣지 않는다. 줄바꿈은 LF를 기준으로 하며 CRLF도 해석할 수 있다. 마지막 값 뒤의 줄바꿈은 필수가 아니지만 권장된다. 모든 기록을 줄바꿈으로 끝내면 파일을 이어 붙일 때 기록 경계를 유지하기 쉽다.

연속 처리와 파일 보관

기록을 차례로 처리할 수 있어 텍스트 도구와 결합하기 편하다. gzip 같은 스트림 압축을 적용해 보관할 수도 있다. 줄 구분만으로 전체 파일이 하나의 JSON 문서가 되는 것은 아니며 각 기록의 자료 구조가 서로 같아야 한다는 별도 규칙도 없다.

관련 문서

JSON 텍스트 시퀀스 / JSON / UTF-8 / 로그 / Gzip / 데이터 직렬화