ZeroTool Workbench
jq 플레이그라운드
공식 jq 1.7 엔진으로 JSON에 jq 필터를 실행. pipe, select, map, group_by, sort, reduce 완전 지원, 설치·업로드·가입 불필요.
사용 방법
- 왼쪽 JSON 입력 패널에 JSON을 붙여넣거나 입력합니다(샘플 users 데이터가 미리 로드되어 있음).
- jq 필터 입력란에 식을 작성하거나 아래의 예시 pill을 클릭하세요.
- 결과는 결과 영역에 JSON 구문 강조 표시와 함께 렌더링됩니다.
- 복사 버튼으로 포맷된 출력을 클립보드로 가져갈 수 있습니다.
jq 치트시트
.— 항등 필터, 입력을 그대로 출력.field— 속성 값 추출.field?— 선택적 추출(필드 누락 시 오류 없음).[]— 배열 또는 객체 값 순회.[start:end]— 배열 슬라이스f | g— f의 출력을 g로 파이프f, g— f와 g를 모두 출력select(cond)— cond가 참인 값만 유지map(f)— 배열의 각 요소에 f 적용group_by(.k)— key로 그룹화sort_by(.k)— key로 정렬length,keys,values,type,has(k)— 인트로스펙션add,min,max,unique— 집계tonumber,tostring,ascii_downcase,split(”/”)— 변환reduce,foreach,def— 제어 흐름 및 사용자 함수
주요 사용 사례
jq는 shell 파이프라인에서 JSON을 다루는 표준 도구입니다: curl로 받은 API 응답, Kubernetes
매니페스트, CI/CD 로그, AWS CLI 출력, 인프라 코드 상태, 데이터 내보내기. 이 Playground는 작은 샘플로
필터를 시제품화한 뒤, 표현식을 그대로 jq -r ’…’에 사용해 큰 파일을 처리하는 용도입니다.
자주 쓰는 레시피: .items | map({id, name})로 API 리스트 응답을 평탄화,
group_by(.tag) | map({tag: .[0].tag, count: length})로 이벤트를 tag별로 버킷화,
[.[] | .duration_ms] | add / length로 숫자 필드의 평균 계산.
FAQ
이것은 진짜 jq인가요, JavaScript 재구현인가요?
공식 jq 1.7 C 소스를 jq-web으로 WebAssembly에 컴파일한 버전입니다. 필터 출력은 명령행 jq와 바이트 단위로 동일합니다. 엔진은 첫 방문에 약 1MB 다운로드되고, 이후 브라우저 캐시로 지연 없이 실행됩니다.
어떤 jq 기능을 지원하나요?
jq 1.7 문법 전체 — pipe, select, map, group_by, sort_by, reduce, foreach, try/catch, 사용자 함수 def, 재귀 하강 .., 문자열·수학·날짜 함수, 모든 빌트인. CLI에서 동작하는 모든 필터가 여기서 동작합니다.
내 JSON과 필터가 서버로 전송되나요?
전송되지 않습니다. jq 엔진은 WebAssembly로 브라우저 안에서만 실행됩니다. JSON과 필터식은 기기를 벗어나지 않습니다. DevTools의 Network 탭에서 jq.wasm의 단 한 번의 다운로드 외에는 어떤 요청도 발생하지 않습니다.
JSON 최대 크기는?
실용 상한은 약 50MB — 그 이상이면 브라우저 메모리와 파싱 시간이 눈에 띄게 증가합니다. GB 단위 JSON 스트림은 명령행 jq의 --stream 모드를 사용하세요.
JSONPath Tester와의 차이는?
JSONPath는 경로로 노드를 선택하는 쿼리 언어. jq는 파이프, 조건, 수학, 함수 정의가 가능한 완전한 변환 언어입니다. 단순 조회는 JSONPath Tester, 변형·필터·집계·재포맷은 jq.