JSON 값과 텍스트를 구분하기
JSON 모드는 연속된 JSON 값을 읽습니다. Slurp는 값을 배열로 모으고, 원시 모드는 텍스트를 줄 단위로 읽으며, 원시와 slurp를 함께 쓰면 전체를 문자열 하나로 읽습니다. Null 모드는 null로 시작하지만 input과 inputs는 제공된 데이터를 읽을 수 있습니다.
JSON 도구
JSON이나 텍스트에 실제 jq를 실행합니다. 입력 모드를 고르고 stdout을 확인한 다음 프로그램을 셸에서 이어서 사용하세요.
미리 보기는 5,000자씩 표시합니다. 복사와 다운로드에는 전체 결과가 포함됩니다.
입력과 프로그램은 브라우저 메모리에서 처리되며 기록을 저장하지 않습니다.
-c -r -j -S -a -e, 짧은 옵션 조합과 긴 별칭을 지원합니다. -s/-R/-n은 입력 모드에서 선택하세요.
jq 1.8.2 · 로컬 WebAssembly · 수동 실행
결과가 오래되어 복사와 다운로드를 사용할 수 없습니다.
POSIX 셸 전용입니다. 입력을 input.json으로 먼저 저장하세요. 복사한 명령에는 입력 데이터가 없습니다.
jq playground에서 API 응답 중 필요한 필드만 골라 보세요. select 조건을 시험하거나 map으로 객체 모양을 바꾸는 동안 원본 입력은 그대로 남아 있어 결과와 비교할 수 있습니다.
jq 명령어 사용법을 익힐 때는 JSON 데이터의 내용뿐 아니라 결과의 형태도 확인해야 합니다. jq 필터는 여러 값이나 하나의 배열을 만들 수도 있고 아무것도 출력하지 않을 수도 있습니다. 이 차이를 결과 창에서 그대로 보여 줍니다.
.people[] | select(.age >= 18) | .name은 성인 한 명마다 문자열 하나를 출력합니다. 각 값과 줄바꿈을 그대로 보여 주므로 다음 명령에 어떤 내용이 전달되는지 확인할 수 있습니다.
jq playground에서 -s를 선택하면 프로그램 실행 전에 모든 JSON 입력을 하나의 배열로 모읍니다. 필터를 대괄호로 감싸는 방식은 현재 입력마다 해당 필터가 내보낸 결과를 모은다는 차이가 있습니다.
JSON 모드는 연속된 JSON 값을 읽습니다. Slurp는 값을 배열로 모으고, 원시 모드는 텍스트를 줄 단위로 읽으며, 원시와 slurp를 함께 쓰면 전체를 문자열 하나로 읽습니다. Null 모드는 null로 시작하지만 input과 inputs는 제공된 데이터를 읽을 수 있습니다.
파일 가져오기, 예제 불러오기, 비우기는 먼저 미리보기를 표시합니다. 적용하면 표시된 입력과 프로그램, 설정을 교체하며 한 번 되돌리면 이전 결과도 복원됩니다. 버튼 또는 Ctrl/Cmd+Enter로 실행하세요. 내용을 수정하면 다시 실행할 때까지 내보내기가 비활성화됩니다.
모든 엔진 종료 코드를 표시합니다. -e가 false, null, 결과 없음을 알리는 경우를 포함해 코드가 0이 아니면 내보낼 수 없습니다. 필요하다면 -e를 빼고 다시 실행하세요. 복사한 POSIX 명령에는 동일한 입력을 input.json으로 저장해 사용합니다.
select는 조건에 맞는 레코드를 남기고 map은 변환된 항목을 배열로 만듭니다. 예제에서는 숫자 나이를 비교하고 adult 불리언 필드가 있는 객체를 만듭니다. 숫자처럼 보이는 문자열은 숫자와 다른 JSON 타입입니다.
jq 1.8.2 WASM 엔진으로 파이프, reduce, def, 재귀, try/catch, 정규식을 실행합니다. 자주 쓰는 필터만 흉내 낸 구현이 아니라 jq 자체를 사용합니다. 파일 모듈과 추가 CLI 파일 인수는 제공하지 않습니다.
-r은 문자열의 JSON 따옴표를 없애고 -j는 출력 구분자를 생략합니다. -c는 JSON을 압축하고 -S는 키를 정렬하며 -a는 ASCII 이스케이프를 사용합니다. 짧은 옵션을 묶거나 대응하는 긴 이름을 쓸 수 있으며 다른 옵션은 거부합니다.
공백, 맨 앞의 BOM, NUL 문자를 내보낸 텍스트에 그대로 보존합니다. debug와 stderr 메시지는 별도로 보여 줍니다. 미리보기는 5,000자씩 늘릴 수 있고 내보내기가 허용된 결과는 전체 내용을 포함합니다.
예제에는 .people[] | select(.age >= 18) | .name을 사용합니다. []가 각 레코드를 내보내고 select가 조건에 맞는 항목을 남긴 뒤 .name이 필드를 추출합니다. 다음 단계에 배열이 필요하다면 전체 식을 대괄호로 감싸세요.
출력 옵션에 -r을 넣으세요. 문자열 결과의 JSON 따옴표만 제거하고 문자열 내부 공백은 유지합니다. 객체와 배열은 여전히 JSON으로 출력합니다. 결과 사이 구분자까지 없애려는 경우에만 -j를 사용하세요.
[.people[] | select(.age >= 18)]처럼 작성하세요. 대괄호가 내부 필터에서 나온 값을 모읍니다. 일치하는 항목이 없으면 빈 스트림 대신 []가 나오므로 다음 명령이 기대하는 형태에 맞출 수 있습니다.
JSON 모으기(-s)를 선택하고 .을 실행하면 모인 배열을 볼 수 있습니다. 입력 자체가 배열이고 이를 이어 붙이려면 -s와 add를 함께 사용하세요. 객체 병합은 다른 작업이며 중복 키를 어떻게 처리할지 따로 정해야 합니다.
텍스트 줄(-R)을 선택하고 단순한 줄에는 split("=") | {(.[0]): .[1]}부터 사용해 보세요. 키와 값 주변 공백은 필요에 따라 제거합니다. 값 안에 등호가 더 있다면 나누는 방식을 바꿔야 합니다. 설정 파일마다 이스케이프 규칙도 다를 수 있습니다.
쿼리 결과가 올바르지 않나요?