비교
JSON Lines와 JSON
JSON Lines(줄바꿈 구분 JSON)는 UTF-8 텍스트 규약으로 각 줄에 독립적이고 유효한 JSON 값 하나를 둡니다. 일반 JSON 텍스트는 전체로 하나의 값을 표현하므로 JSON Lines는 여러 레코드를 순차 처리하거나 추가하기 좋습니다.
어떤 형식을 선택해야 할까요?
로그나 이벤트를 레코드 단위로 처리하고 추가할 때 JSON Lines를 고려하세요. 단일 설정 문서나 완전한 중첩 객체·배열에는 일반 JSON을 사용하세요.
적합한 경우 JSON Lines
줄 단위로 처리하는 로그와 기록 · JSON 레코드의 스트리밍 교환
- 레코드를 하나씩 읽고 쓰기
- 일반 텍스트 도구로 데이터를 추가하거나 합치기
적합한 경우 JSON
웹 API, 설정 파일 및 데이터 교환
- 구조화된 데이터 전달
기본 정보
| 항목 | JSON Lines | JSON |
|---|---|---|
| 확장자 | .jsonl, .ndjson | .json |
| MIME 유형 | application/jsonl | application/json |
| 주요 용도 | 줄 단위로 처리하는 로그와 기록 · JSON 레코드의 스트리밍 교환 | 웹 API, 설정 파일 및 데이터 교환 |
| 여는 방법 | 텍스트 편집기나 JSON Lines 지원 도구로 엽니다. 각 줄을 JSON으로 검증하면 구문 오류가 있는 레코드를 찾기 쉽습니다. | 텍스트 편집기, IDE 또는 JSON 지원 뷰어로 엽니다. |
| 내보내기 또는 변환 | JSON 배열로 바꿀 때는 각 줄을 배열 요소로 모읍니다. 배열에서 JSON Lines로 바꿀 때는 값을 한 줄씩 기록합니다. 큰 파일은 변환 중 메모리 사용량을 고려하세요. | 애플리케이션이나 변환 도구로 CSV 등의 형식으로 변환할 수 있습니다. |
용도별 선택
레코드를 하나씩 읽고 쓰기
줄 단위로 처리하는 로그와 기록 · JSON 레코드의 스트리밍 교환
JSON Lines일반 텍스트 도구로 데이터를 추가하거나 합치기
줄 단위로 처리하는 로그와 기록 · JSON 레코드의 스트리밍 교환
JSON Lines구조화된 데이터 전달
웹 API, 설정 파일 및 데이터 교환
JSON핵심 사항 1
JSON Lines의 각 줄은 하나의 유효한 JSON 값이어야 합니다. 객체가 흔하지만 문자열, 숫자, null 등 다른 JSON 값도 허용되며 빈 줄은 레코드가 아닙니다. 일반 JSON 텍스트는 전체로 하나의 값을 나타냅니다.
차이 자세히 보기핵심 사항 2
JSON Lines는 UTF-8을 사용하고 값 사이에 LF를 둡니다. JSON 공백 규칙에 따라 CRLF도 지원됩니다. 마지막 개행은 권장되지만 필수는 아니므로 연결과 스트림 경계 처리를 정해야 합니다.
차이 자세히 보기차이 자세히 보기
수신자가 지원한다면 레코드 단위 파이프라인과 추가하기 쉬운 로그에 JSON Lines를 사용하세요. 단일 구조 문서에는 JSON을 사용하세요. JSON Lines 전체를 표준 JSON 문서로 간주하지 말고 줄별로 파싱하세요.
- JSON Lines 파일은 줄바꿈으로 구분된 여러 최상위 JSON 값을 포함하므로 일반 JSON 문서 파서는 파일 전체를 입력받으면 거부할 수 있습니다.
- 순서, 빈 줄이나 잘못된 줄, 레코드 오류 후 복구, 마지막 줄 종결자의 필요 여부를 정의하세요.
- JSON Lines는 UTF-8이고 BOM을 포함하지 않습니다. 제안된 `application/jsonl` 미디어 유형은 아직 표준화되지 않았으므로 수신자와 전송 메타데이터를 합의하세요.
자주 묻는 질문
JSON Lines 파일은 JSON 배열과 같은가요?
아닙니다. 하나의 JSON 배열 문서가 아니라 줄바꿈으로 구분된 JSON 값의 시퀀스이며 각 줄을 독립 처리할 수 있습니다.