jq 실습장
jq Playground
브라우저에서 붙여넣은 JSON에 jq 1.7 필터를 실행하고 치트시트와 함께 같은 결과를 내는 명령줄을 만들어 줍니다.
jq 필터를 브라우저에서 문서에 실행합니다. 문자열 조작 몇 가지가 아니라 jq 1.7 문법을 구현한 인터프리터라서, 파이프와 `reduce`, `def`, 구조 분해, 갱신 연산자가 명령줄에서와 같이 동작합니다. 필터 아래에 같은 일을 하는 셸 명령이 함께 나옵니다.
필터
jq '.orders[] | select(.status == "shipped") | {id, customer}' data.json
입력 JSON
.json 파일 놓기
이 탭 안에서만 읽습니다. 어디에도 올라가지 않습니다.
출력 1개
출력
1
걸린 시간
<1 ms
종류
object
jq 1.7 문법을 직접 구현한 인터프리터입니다. 경로(.a[0].b, .., ?), |·,·//, 산술·비교·and·or·not, 문자열 끼워 넣기, if·try·reduce·foreach·as(구조 분해 포함)·def, 그리고 |=·+= 같은 갱신, @base64·@csv 같은 포맷, 아래 내장 함수 180개를 지원합니다. 테스트는 jq 매뉴얼의 예제를 그대로 씁니다.
지원하지 않는 것: input·inputs(문서가 하나뿐입니다), $ENV·env(비어 있음), label·break, --stream, @sh의 중첩 배열, strptime의 ISO 8601 외 형식, getpath 스트림 모드, 모듈(import). 정규식은 jq의 Oniguruma가 아니라 브라우저 엔진이라 \p{L}과 이름 있는 그룹은 되고, 후방 탐색 같은 미묘한 차이가 있을 수 있습니다.
경로 하나만 고르는 거라면 JSONPath 테스터가 더 간단할 수 있습니다.
사용 방법
문서를 붙여넣습니다
JSON 값 하나, 또는 여러 개가 이어져 있어도 됩니다. jq의 입력 스트림처럼 읽고, 값이 몇 개인지 칸 제목에 표시합니다.
필터를 쓰거나 예시에서 고릅니다
자주 나오는 형태를 버튼으로 담았습니다. select, map, group_by, 문자열 끼워 넣기, reduce, 갱신 연산자 같은 것들입니다. 마우스를 올리면 무엇을 하는지 나옵니다.
명령줄에서 쓸 플래그를 켭니다
출력 하나에 한 줄이면 `-c`, 키 정렬은 `-S`, 문자열을 따옴표 없이 내려면 `-r`, 여러 입력을 배열 하나로 모으려면 `-s`입니다. 아래 명령줄이 함께 갱신됩니다.
출력만이 아니라 명령도 복사합니다
만들어진 `jq …` 줄은 POSIX 셸 기준으로 따옴표가 제대로 쳐져 있어서, 스크립트나 파이프라인에 그대로 넣을 수 있습니다.
자주 묻는 질문
이게 정말 jq인가요?
jq 문법을 따로 구현한 인터프리터이고, 테스트는 jq 매뉴얼의 예제를 그대로 씁니다. 언어와 흔히 쓰는 내장 함수를 다룹니다. jq 자체를 컴파일한 것이 아니라서, jq의 C 내부에 기대는 것은 다르게 동작합니다.
`input`은 왜 안 되나요?
여기에는 문서가 하나뿐이고, 필터가 더 끌어올 스트림이 없기 때문입니다. `input`, `inputs`, `$ENV`, `env`, `label`/`break`, `--stream`, 모듈은 이유 없이 실패하는 대신 페이지에 지원하지 않는다고 적어 두었습니다.
정규식이 jq와 다르게 동작합니다.
jq는 Oniguruma를 쓰고 여기서는 브라우저 엔진을 씁니다. 실제로 `\p{L}`과 이름 있는 그룹은 양쪽에서 되고, 차이는 후방 탐색과 몇몇 문자 클래스 이스케이프에서 나타납니다. 중요한 패턴이라면 실제로 돌릴 환경에서 확인하세요.
출력 5,000개에서 멈췄습니다.
단계 수 제한과 함께 일부러 둔 한계입니다. 큰 문서에 `..`를 걸면 출력이 엄청나게 나오고, 재귀가 폭주하는 필터는 탭을 멈추게 합니다. 필터를 좁히거나, `head`로 넘길 수 있는 명령줄에서 돌리세요.
이 도구로 이어지는 것
JSON Lines 변환
JSON Lines Converter
NDJSON과 JSON 배열을 상호 변환하며, 깨진 줄은 변환을 멈추는 대신 줄 번호로 알려 줍니다.
JSONPath 테스터
JSONPath Tester
JSONPath 식을 문서에 실행하고 입력하는 동안 일치하는 노드를 강조해 보여 줍니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
YAML 정렬·검사
YAML Formatter & Validator
YAML 들여쓰기를 통일하고 문법을 검사하며, 파서를 깨뜨리는 탭·앵커 실수를 표시합니다.
다음 단계
이 도구의 결과를 그대로 받을 수 있는 도구들입니다.
JSON CSV 변환
JSON ⇄ CSV
중첩 JSON을 점 표기 열 이름으로 펼치거나, 표에서 객체를 다시 만듭니다.
JSON 정렬·검사
JSON Formatter & Validator
JSON을 보기 좋게 정렬하거나 압축하고, 문법 오류가 난 줄과 열을 정확히 짚어 줍니다.
JSONPath 테스터
JSONPath Tester
JSONPath 식을 문서에 실행하고 입력하는 동안 일치하는 노드를 강조해 보여 줍니다.
JSON Lines 변환
JSON Lines Converter
NDJSON과 JSON 배열을 상호 변환하며, 깨진 줄은 변환을 멈추는 대신 줄 번호로 알려 줍니다.
Base64 인코딩·디코딩
Base64 Encoder & Decoder
텍스트와 파일을 Base64·Base64URL로 인코딩·디코딩하며 UTF-8을 올바르게 처리합니다.
curl 코드 변환
curl to Code
curl 명령을 fetch·axios·파이썬 requests·Go·PHP·PowerShell 코드로 변환합니다.