JSON 도구

JSONPath 테스터값이 어디에서 왔는지까지

가격 필터 예제로 시작해 일치한 값과 경로를 확인하세요. 자동 실행을 끄면 직접 쿼리를 실행할 수 있습니다.

JSONPath 테스터

JSON 입력

JSON은 이 브라우저에서 처리합니다. 직접 저장한 표현식만 로컬에 보관합니다.

일치 결과

정규화 경로값

값 미리보기는 항목당 1,200자까지입니다. 복사와 다운로드에는 선택한 보기의 전체 결과가 포함됩니다.

RFC 9535 · jsonpath-rfc9535 1.3.0 · JavaScript 표현식 실행 안 함

결과가 오래되어 내보내기와 전송을 사용할 수 없습니다.

다른 도구에서 계속

클릭하면 새 탭으로 메모리에서 데이터를 전달합니다. URL에는 넣지 않습니다. 전송 한도는 500,000자입니다.

JSONPath 테스터는 API 응답 안에서 같은 이름의 필드가 여러 번 나올 때 유용합니다. 값만 추출하면 어느 레코드에서 왔는지 놓치기 쉬우므로 위치도 함께 확인해야 합니다.

여러 방언을 자동으로 시도하지 않고 정해진 구현으로 JSONPath 표현식을 평가합니다. 실제 프로그램에 적용하기 전에 정확한 경로와 재귀 탐색의 범위를 비교하세요.

JSONPath 테스터로 확인할 수 있는 것

같은 값도 출처는 다릅니다

JSONPath 테스터는 각 값 옆에 $['store']['book'][0] 같은 정규화 경로를 표시합니다. 가격이 같은 책 두 권도 각각의 위치를 유지하며 한 항목으로 합치지 않습니다.

데이터 트리의 선택된 두 가지와 각각에 대응하는 값 및 위치 경로.

다음 도구에 필요한 데이터 선택

원본 문서와 일치한 값 배열 중 하나를 고른 뒤 포맷터 또는 CSV 변환기로 보낼 수 있습니다. 객체는 표의 행으로 이어지고, 숫자나 문자열은 JSON 형식으로 검토할 수 있습니다. 쿼리 완료만으로 전송되지는 않습니다.

전체 문서 또는 선택된 부분을 정리된 문서나 표로 보내는 흐름.

원하는 범위만 선택하는 방법

01

재귀 탐색이 어디까지 가는지 확인

책 제목 예제는 책 배열만 따라갑니다. $..price는 자전거 가격까지 찾으므로, 경로를 보고 원하지 않는 레코드가 포함됐는지 확인한 뒤 검색 범위를 넓히세요.

02

실행 시점을 조절하세요

자동 모드는 입력을 멈춘 뒤 350ms 후 실행합니다. 끄면 실행 버튼이나 Ctrl/Cmd+Enter를 사용합니다. 입력 또는 표현식을 바꾸는 즉시 이전 결과의 복사, 다운로드, 전송을 막습니다.

03

내보내는 배열 구조를 확인하세요

일치 항목이 하나여도 값 결과는 배열입니다. 경로 보기는 경로 문자열 배열을 내보냅니다. 표현식은 최대 20개 저장하며, 불러와도 현재 JSON 문서를 바꾸지 않습니다.

레코드와 경로를 함께 살펴보기

표준 필터와 함수

$.store.book[?@.price < 10]으로 저렴한 책을 선택합니다. &&, || 조건과 length, count, match, search, value 함수를 지원합니다. JavaScript 코드를 실행하는 대신 JSONPath 문법으로 파싱합니다.

여러 단계의 노드 선택

JSONPath 쿼리는 자식 이름, 와일드카드, 재귀 하강, 음수 인덱스, 슬라이스와 복수 선택자를 지원합니다. 같은 선택자를 반복하면 중복 결과가 나올 수 있으며 자동으로 제거하지 않습니다.

빈 결과와 null 구별

일치하는 노드가 없으면 [], null 값에 하나 일치하면 [null]입니다. 둘 다 정상 결과가 될 수 있습니다. 반면 문법 오류는 별도 오류로 표시하며 결과를 내보낼 수 없습니다.

저장과 미리보기의 범위

결과는 50개씩 추가 표시하고 값당 미리보기는 1,200자까지입니다. 복사와 다운로드는 전체 결과를 포함합니다. 저장한 표현식 삭제는 먼저 대상을 확인하고 적용하며 한 번 취소할 수 있습니다.

문법과 처리 범위

하나의 RFC 구현
jsonpath-rfc9535 1.3.0을 사용하며 RFC 9535를 기반으로 합니다. Jayway, Goessner, kubectl 또는 JSONPath Plus의 모든 확장과 호환된다는 뜻은 아닙니다. jq, JMESPath, 사용자 정의 함수와 스크립트는 받지 않습니다.
엄격한 JSON 및 숫자 범위
주석, JSON5, 후행 쉼표, 중복 키, 안전한 범위 밖의 정수와 숫자 오버플로를 거부합니다. 일반 소수는 JavaScript 숫자로 처리하므로 지수 표기, 끝의 0과 음의 0은 출력에 보존되지 않습니다.
처리량과 시간 제한
입력 500,000자, 깊이 100, 노드 50,000개, 표현식 2,000자, 일치 5,000개, 합계 출력 2,000,000자까지입니다. 워커는 2초가 지나면 중단하며 제한 초과 시 불완전한 결과를 내보내지 않습니다.
데이터 형태를 다시 만들지 않음
이미 존재하는 노드를 선택하며 수정, 그룹화, 집계나 새 객체 생성을 하지 않습니다. CSV 전송은 객체 또는 객체로만 이뤄진 배열에 한정합니다. 스칼라 배열을 표 행으로 자동 변환하지 않습니다.
명시적인 저장과 전송
파일 및 URL 가져오기, 클라우드 동기화, 데이터가 들어간 공유 링크는 없습니다. 다른 도구로는 같은 출처의 새 탭에 메모리로 전달하며 500,000자까지만 보냅니다. 전송 중에는 원래 페이지를 열어 두세요.

JSONPath 테스터 질문과 답변

JSONPath와 JSON Pointer(RFC 6901), 어느 쪽을 써야 하나요?

하나의 위치를 정확히 지정하려면 JSON Pointer가 적합합니다. JSONPath 테스터는 와일드카드와 필터로 여러 노드를 선택합니다. 결과 표의 경로는 JSON Pointer가 아니라 정규화된 JSONPath 표기입니다.

필터 표현식 ?(@.price > 10) 같은 것도 지원하나요?

네. $.store.book[?@.price > 10]처럼 현재 후보의 속성을 비교할 수 있습니다. &&와 ||로 조건을 조합하고 표준 함수도 사용할 수 있지만 JavaScript 메서드나 임의 코드는 허용하지 않습니다.

깊이를 모르는 객체에서 특정 키만 모두 찾고 싶어요

$..key로 깊이에 관계없이 해당 이름의 자식 노드를 찾을 수 있습니다. 다만 같은 이름이 다른 용도로 쓰인 레코드도 포함될 수 있으므로, 결과 경로를 확인한 뒤 더 구체적인 분기로 좁히세요.

지원하는 최대 JSON 크기는 얼마인가요?

붙여넣기 입력은 500,000자까지이며 깊이와 노드 수 제한도 있습니다. 표현식은 2,000자, 일치는 5,000개까지입니다. 복잡한 필터는 2초 제한에 걸릴 수 있으니 입력이나 검색 범위를 줄이세요.

JSONPath와 JMESPath의 차이점은 무엇인가요?

JSONPath는 주로 기존 노드를 선택하고 그 위치를 확인하는 데 쓰입니다. JMESPath에는 다른 문법과 데이터 변환 기능이 있습니다. 이 JSONPath 테스터는 JMESPath 표현식을 실행하지 않으므로 해당 언어용 도구를 사용해야 합니다.

쿼리가 예상과 다르게 처리되나요?

가격 필터를 직접 비교하세요

JSONPath 테스터에서 가격 필터와 재귀 탐색을 비교하세요. 출처 경로를 확인한 다음 원본 문서와 일치한 값 중 다음 작업에 필요한 쪽을 선택하면 됩니다.