ZeroTool Workbench

jq 플레이그라운드

공식 jq 1.7 엔진으로 JSON에 jq 필터를 실행. pipe, select, map, group_by, sort, reduce 완전 지원, 설치·업로드·가입 불필요.

100% 클라이언트 사이드 데이터가 브라우저 밖으로 나가지 않습니다 무료 · 회원가입 불필요
예시
결과

엔진: jq 1.7 (WASM, 최초 로드 후 캐시)

사용 방법

  1. 왼쪽 JSON 입력 패널에 JSON을 붙여넣거나 입력합니다(샘플 users 데이터가 미리 로드되어 있음).
  2. jq 필터 입력란에 식을 작성하거나 아래의 예시 pill을 클릭하세요.
  3. 결과는 결과 영역에 JSON 구문 강조 표시와 함께 렌더링됩니다.
  4. 복사 버튼으로 포맷된 출력을 클립보드로 가져갈 수 있습니다.

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.