Skip to content
Tools/jq 놀이터

jq 놀이터

jq Playground

JSON 가공 연습장 — 실전 샘플 데이터에 jq 필터를 실시간으로 실행하고, 레시피 갤러리와 연습 미션 10개로 jq를 익혀보세요.

히스토리 (0)

아직 기록이 없어요. 필터가 성공적으로 실행되면 최근 15개까지 저장됩니다.

JSON 입력

결과

jq 엔진 로딩 중…

WASM 약 1.5MB, 최초 1회만 내려받아요

필터 레시피 갤러리

레시피를 클릭하면 필터와 어울리는 샘플 데이터가 함께 적용됩니다.

기본

변환

집계

문자열

실전

연습 미션

0 / 10 완료

미션의 샘플 데이터를 불러와 필터를 작성한 뒤 채점해 보세요. 채점은 항상 해당 미션의 원본 샘플 데이터 기준으로 실행됩니다.

  1. 1

    PullRequestEvent만 골라 저자(actor.login) 목록을 배열로 만드세요

    샘플: GitHub 이벤트 (배열)

  2. 2

    이벤트에 등장한 저장소 이름(repo.name)을 중복 없이 정렬된 배열로 만드세요

    샘플: GitHub 이벤트 (배열)

  3. 3

    phase가 "Running"인 Pod의 이름만 배열로 뽑으세요

    샘플: Kubernetes PodList

  4. 4

    지금 실행 중(state.running)인 컨테이너 이름만 배열로 뽑으세요

    샘플: Kubernetes PodList

  5. 5

    모든 컨테이너의 restartCount 총합을 구하세요

    샘플: Kubernetes PodList

  6. 6

    전체 주문 총액을 구하세요 (모든 item의 price × qty 합산)

    샘플: 쇼핑몰 주문 (중첩)

  7. 7

    status가 "delivered"인 주문의 orderId만 배열로 뽑으세요

    샘플: 쇼핑몰 주문 (중첩)

  8. 8

    고객 등급(tier)별 주문 수를 객체로 만드세요 (예: {"basic": 1, ...})

    샘플: 쇼핑몰 주문 (중첩)

  9. 9

    ERROR 레벨 로그가 몇 개인지 세어보세요

    샘플: 서버 로그 (배열)

  10. 10

    latency_ms가 가장 큰 로그의 message를 구하세요

    샘플: 서버 로그 (배열)

jq 치트시트 (연산자 · 함수)

경로 & 연산자

표현식설명
.foo / .foo.bar키 접근 / 중첩 키 접근
.foo?키가 없어도 에러 대신 null
.[0] / .[-1]배열 인덱스 (음수는 뒤에서부터)
.[1:3]배열 슬라이스 (1 이상 3 미만)
.[]배열/객체를 낱개 값 스트림으로 펼치기
a | b파이프: a의 출력을 b의 입력으로
a, b여러 출력을 순서대로 내보내기
a // ba가 null/false면 b (기본값)
..재귀 탐색 (모든 하위 값 방문)
. as $x | ...현재 값을 변수 $x에 바인딩
"이름: \(.name)"문자열 보간 (interpolation)
if A then B else C end조건 분기
try A catch B에러가 나면 B로 대체

자주 쓰는 함수

표현식설명
length / keys / values길이 / 키 배열 / 값 배열
has("k") / type키 존재 여부 / 값의 타입
map(f) / select(f)각 요소 변환 / 조건 필터
map_values(f)객체의 값만 일괄 변환
add / any / all합치기(합계·연결) / 하나라도 / 모두
flatten중첩 배열 평탄화
sort / sort_by(f) / reverse정렬 / 기준 정렬 / 뒤집기
group_by(f)기준값으로 묶어 배열의 배열로
unique / unique_by(f)중복 제거 (정렬됨)
min_by(f) / max_by(f)기준값이 최소/최대인 요소
reduce .[] as $x (0; . + $x)누적 계산
to_entries / from_entries객체 ↔ key/value 쌍 배열
with_entries(f)to_entries → 변환 → from_entries 축약
del(.a)키 삭제
tostring / tonumber문자열 ↔ 숫자 변환
split(",") / join(",")문자열 쪼개기 / 배열 잇기
startswith / endswith / contains문자열 검사
test("re"; "i") / capture정규식 매칭 / 그룹 추출
ascii_downcase / ascii_upcase소문자 / 대문자 변환
@csv / @tsv / @json / @base64포맷 변환 (-r과 함께)