JSON 배열 ↔ JSONL 변환기
JSON 배열은 한 줄에 객체 하나씩, JSONL은 하나의 배열로 바꿉니다. 내용을 붙여 넣거나 파일을 열고 결과를 복사·저장하세요.
UTF-8 JSON·JSONL·TXT · 최대 5 MiB · 파일을 이 칸에 놓을 수도 있습니다.
JSON 배열을 붙여 넣거나 파일을 열어 주세요.
배열의 항목과 JSONL의 각 줄은 JSON 객체여야 합니다.
바로 쓸 수 있게.
- 바로 보이는 화면입력 위치와 결과 위치를 또렷하게 둡니다.
- 결과 먼저핵심 결과를 앞에 두고, 과정은 필요할 때만 보여줍니다.
- 요구 줄이기가입이나 불필요한 정보 입력 없이 바로 쓰게 합니다.
JSON 배열과 JSONL, 줄과 객체를 구분해서 변환하기
JSON 배열 ↔ JSONL 변환기는 여러 객체를 담은 배열을 한 줄에 객체 하나씩 나누거나, 줄마다 적힌 객체를 하나의 배열로 묶습니다. API에서 받은 목록을 줄 단위 데이터로 옮기거나, JSONL 파일을 배열 형식으로 읽는 프로그램에 전달할 때 사용하세요.
이 도구는 바깥쪽 배열의 각 항목, 또는 JSONL의 각 줄이 객체인 자료를 변환합니다. 객체 안의 배열과 중첩 객체는 그대로 두며, 숫자 표기와 항목 순서를 유지합니다. 입력한 텍스트와 파일은 변환을 위해 서버에 보내지 않습니다.
JSON 배열과 JSONL은 자료를 묶는 방식이 다릅니다
JSON 배열은 여러 항목을 대괄호 [] 안에 넣고 쉼표로 구분합니다. JSONL은 각 줄에 독립된 JSON 값을 적습니다. 이 도구에서는 그 값을 객체로 제한해, 배열의 객체 하나가 JSONL의 한 줄이 됩니다. 받는 프로그램이 요구하는 형식을 먼저 확인하세요.
- JSON 배열: 여러 객체를 하나의 JSON 문서로 전달할 때 사용합니다.
- JSONL: 로그나 목록을 한 건씩 읽는 프로그램에 전달할 때 사용합니다.
- 파일 확장자만 바꾸면 바깥 대괄호나 객체 사이의 구분은 바뀌지 않습니다.
입력한 자료에 맞춰 방향을 고르세요
대괄호로 감싼 객체 목록은 JSON 배열 → JSONL, 각 줄에 객체가 하나씩 있는 자료는 JSONL → JSON 배열을 선택합니다. 내용을 붙여 넣거나 UTF-8 파일을 연 뒤, 객체 수와 오류 안내를 확인하세요. 잘못된 자료는 추측해 고치지 않으므로 원문을 수정해야 합니다.
- API 응답이 {"items":[...]} 모양이라면 items 안의 배열을 입력하세요.
- JSONL 오류에 표시되는 줄 번호와 배열의 비객체 항목 번호는 원문을 고칠 때 참고하세요.
- 다른 입력 칸으로 옮기려면 결과 복사를, 파일로 보관하려면 다운로드를 사용하세요.
두 객체는 두 줄로 나뉩니다
예를 들어 [{"id":1,"name":"민지"},{"id":2,"name":"준호"}]에는 객체가 두 개 있습니다. JSONL로 바꾸면 바깥 대괄호와 객체 사이 쉼표가 없어지고, 두 객체가 각각 한 줄을 차지합니다. 반대 방향으로 변환하면 같은 순서로 배열에 들어갑니다.
- JSONL 첫째 줄: {"id":1,"name":"민지"}
- JSONL 둘째 줄: {"id":2,"name":"준호"}
- 객체 안의 값은 유지하고 객체 사이 구분과 들여쓰기를 출력 형식에 맞게 바꿉니다.
객체 안의 배열과 문자열 줄바꿈은 유지합니다
한 줄에 객체 하나라는 조건은 바깥쪽 자료에 적용합니다. 객체 안에 중첩 객체나 배열이 있어도 변환할 수 있습니다. 문자열 안의 줄바꿈은 \n처럼 이스케이프한 상태로 적어야 JSONL의 줄 경계와 구별됩니다.
- {"tags":["서울","신규"]}는 배열을 포함하지만 객체 한 개입니다.
- {"memo":"첫째 줄\n둘째 줄"}도 JSONL에서는 실제 한 줄입니다.
- 여러 줄로 들여쓴 객체를 JSONL에 그대로 붙이면 각 줄이 완전한 객체가 아니므로 오류가 납니다.
빈 줄과 마지막 줄바꿈은 구분합니다
JSONL 중간의 빈 줄에는 JSON 값이 없으므로 이 도구는 오류로 알립니다. 공백이나 탭만 적힌 줄도 같습니다. 마지막 객체 뒤의 줄바꿈 한 번은 허용합니다. JSONL 입력은 LF와 CRLF를 읽으며, 출력은 LF를 사용하고 마지막 객체 뒤에도 줄바꿈을 붙입니다.
- 객체 사이에 빈 줄을 넣거나 마지막 객체 뒤에 빈 줄을 추가하지 마세요.
- []는 객체가 0개인 배열이므로 JSONL 결과는 줄바꿈도 없는 0바이트입니다.
- 입력 칸을 비우거나 공백만 넣으면 변환 대기 상태로 둡니다.
숫자나 null이 최상위 항목이면 멈춥니다
JSON Lines 형식 자체는 숫자, 문자열, 배열, null도 한 줄의 값으로 허용합니다. 이 도구는 한 줄에 객체 하나가 필요한 작업을 대상으로 하므로, 바깥쪽 항목이 객체가 아니면 변환을 멈춥니다. 객체 안의 값에는 이 제한을 적용하지 않습니다.
- [{"id":1},null]에서는 두 번째 항목이 객체가 아니므로 오류를 알립니다.
- {}는 내용이 비어 있어도 객체이므로 사용할 수 있습니다.
- {"value":null}처럼 객체 안에 있는 null과 배열은 사용할 수 있습니다.
긴 숫자와 중복 키는 받는 프로그램에서도 확인하세요
이 도구는 숫자를 다시 계산하지 않고 입력된 표기를 유지합니다. 같은 객체에 반복된 키와 키의 순서도 남깁니다. 다만 결과를 읽는 다른 프로그램이 긴 숫자를 반올림하거나 중복된 키 중 마지막 값만 사용할 수 있습니다.
- 긴 식별자는 받는 형식이 허용한다면 "9007199254740993"처럼 문자열로 관리하세요.
- {"id":1,"id":2}처럼 키가 겹친 자료는 전달 전에 뜻을 확인하세요.
- 공백과 들여쓰기는 바뀌므로 변환 전후 파일이 바이트 단위로 같지는 않습니다.
한글 파일은 UTF-8로 준비하세요
파일은 UTF-8로 읽고 저장합니다. 한글이 깨진 자료는 원래 프로그램에서 UTF-8로 다시 저장하세요. JSONL 기준에서는 파일 앞에 BOM을 넣지 않지만, 이 도구는 불러온 파일 맨 앞의 UTF-8 BOM을 읽을 때 제거합니다. 출력 파일에는 BOM을 붙이지 않습니다.
- 파일과 붙여 넣은 입력은 UTF-8 기준 최대 5 MiB, 즉 5,242,880바이트입니다.
- UTF-16이나 EUC-KR로 저장한 파일은 먼저 UTF-8로 바꿔 주세요.
- 큰 자료는 객체 경계에 맞춰 나누고 배열 입력에는 바깥 대괄호를 갖추세요. 문자열 중간을 자르면 문법 오류가 납니다.
배열 들여쓰기는 읽는 방식에 맞춰 선택하세요
JSONL을 JSON 배열로 바꿀 때는 보기 좋게 정렬 옵션으로 구조를 읽기 쉽게 만들 수 있습니다. 간결한 배열이 필요하면 옵션을 끄세요. JSONL 출력은 각 객체가 한 줄에 들어가도록 불필요한 공백을 줄입니다. 배열 출력도 파일 마지막에 LF 줄바꿈을 붙입니다.
- 구조를 눈으로 검토할 때는 보기 좋게 정렬을 켜세요.
- 들여쓰기로 결과가 너무 커진다는 안내가 나오면 옵션을 끄고 다시 변환하세요.
- 화면 폭에 맞춰 긴 줄이 접혀 보여도 실제 줄바꿈이 추가된 것은 아닐 수 있습니다.
저장 전에 객체 수와 필요한 값을 확인하세요
변환을 마치면 원본의 객체 수와 결과의 객체 수를 비교하세요. 첫 번째와 마지막 객체, 긴 식별자, 중첩 배열처럼 중요한 부분을 함께 확인하면 누락이나 입력 범위 실수를 찾기 쉽습니다. 파일을 받는 프로그램이 요구하는 키와 자료형도 확인해야 합니다.
- JSON 배열을 넣었다면 바깥쪽 항목 수를 확인하세요.
- JSONL을 넣었다면 빈 줄과 객체 뒤에 붙은 쉼표가 없는지 확인하세요.
- 다른 프로그램에 가져온 뒤에는 긴 숫자와 중복 키가 어떻게 읽혔는지도 확인하세요.
JSON 배열·JSONL 자주 묻는 질문
JSON 파일의 확장자를 jsonl로 바꾸면 되나요?
확장자만 바꾸면 내용은 그대로입니다. JSON 배열을 JSONL로 만들려면 바깥 대괄호와 객체 사이 쉼표를 정리하고 각 객체를 한 줄에 하나씩 배치해야 합니다. 이 도구가 그 변환을 수행합니다.
JSONL에는 반드시 객체만 들어가야 하나요?
JSON Lines 형식은 숫자, 문자열, 배열, null도 허용합니다. 다만 이 도구는 한 줄에 객체 하나가 필요한 자료를 변환하므로 최상위 값이 객체가 아니면 오류를 알립니다. 객체 안의 숫자, 배열, null은 사용할 수 있습니다.
JSONL 중간에 빈 줄이 있으면 어떻게 되나요?
빈 줄과 공백만 있는 줄은 오류로 처리합니다. 해당 줄을 지운 뒤 다시 변환하세요. 마지막 객체 뒤의 줄바꿈 한 번은 허용하지만 그 뒤에 빈 줄을 추가하면 오류가 납니다. 입력 전체가 비었거나 공백뿐이면 변환 대기 상태로 둡니다.
객체 안의 배열이나 문자열 줄바꿈도 변환되나요?
네. 객체 안의 배열과 중첩 객체는 유지합니다. 문자열 줄바꿈은 JSON 문법에 맞게 역슬래시와 n으로 적어야 합니다. JSONL에서는 객체 전체가 실제 한 줄에 들어가야 합니다.
긴 숫자나 중복된 키가 사라지나요?
이 도구는 숫자 표기와 중복된 키, 키의 순서를 유지합니다. 다만 결과를 읽는 다른 프로그램은 긴 숫자를 반올림하거나 중복 키 중 하나만 사용할 수 있으므로 가져온 뒤에도 필요한 값을 확인하세요.
빈 배열을 변환했는데 결과가 비어 있어도 정상인가요?
네. 빈 배열 []에는 객체가 없으므로 JSONL 결과는 0개 객체, 0바이트입니다. 입력 칸 자체를 비우면 변환 대기 상태가 되며 빈 입력을 배열로 바꾸지는 않습니다.
한글이 깨진 파일이나 큰 파일도 읽을 수 있나요?
UTF-8 텍스트를 지원하며 입력 크기는 최대 5 MiB, 5,242,880바이트입니다. 한글이 깨지면 원래 프로그램에서 UTF-8로 다시 저장하세요. 파일 맨 앞의 UTF-8 BOM은 읽을 때 제거하고, 출력은 BOM 없는 UTF-8로 저장합니다.
입력한 JSON이나 파일이 서버에 저장되나요?
이 도구는 변환을 현재 브라우저에서 처리하며 변환을 위해 입력 내용이나 파일을 서버로 보내지 않습니다.
JSON과 JSON Lines의 형식 기준
JSON 문법은 RFC 8259를, JSONL의 인코딩과 줄 구분은 JSON Lines 문서를 참고했습니다. 이 도구는 JSON Lines에서 허용하는 값 중 객체만 최상위 항목으로 변환합니다. 사용하려는 프로그램의 입력 규칙도 함께 확인하세요.
함께 쓰면 좋은 도구
- CSV ↔ TSV 변환기 · 표 데이터를 쉼표 구분과 탭 구분 사이에서 옮길 때
- 마크다운 표 CSV 변환기 · 문서에 적힌 표와 CSV를 서로 바꿀 때
- 텍스트 비교기 · 원문과 결과에서 달라진 부분을 살펴볼 때