onlinetools.dev

JSONPath 테스터

JSONPath 표현식으로 JSON을 조회하고 각 매치와 경로 확인

로컬 실행
loading…
이 도구에 대해

자신의 JSON에 대해 JSONPath 표현식을 테스트하고, 모든 매치를 값과 구체적인 경로 양쪽으로 확인하세요. 일상적인 사용을 커버하는 문법을 지원합니다. 점과 대괄호 표기, 배열 인덱스(음수 포함), 와일드카드, 유니온(['a','b']), 재귀 하강($..price)까지.

매치별 경로 출력은 조용히 유용한 부분입니다. 깊은 문서에 $..id 를 질의하면 각 결과가 정확히 어디에 있는지($.data.items[3].id) 알려주며, 코드에 바로 붙여넣을 수 있습니다. "이 덩어리 어딘가"를 정확한 주소로 바꿔 줍니다.

필터 표현식([?(@.price < 10)])은 아직 구현되지 않았습니다. 도구는 잘못된 결과를 반환하는 대신 이를 명시적으로 알려줍니다. JSONPath 사용의 대부분인 구조적 추출에는 모든 것이 동작합니다.

자주 묻는 질문

$.a.b 와 $..b 는 무엇이 다른가요?
$.a.b 는 정확히 한 경로를 따라갑니다. 루트의 키 a, 그 안의 키 b. $..b(재귀 하강)는 문서 어디서든 어떤 깊이에서든 모든 b를 찾습니다. 재귀 하강은 강력하지만 놀라움을 줄 수 있습니다. 미처 생각하지 못한 것들 안에 중첩된 b 키까지 매치합니다.
공백이나 대시가 들어간 키에는 어떻게 접근하나요?
따옴표를 쓴 대괄호 표기입니다. $['my key'] 또는 $.data['content-type']. 점 표기는 유효한 식별자 같은 이름을 가진 키에만 동작합니다.
음수 배열 인덱스가 동작하나요?
네. [-1] 은 마지막 요소, [-2] 는 끝에서 두 번째로, Python이 널리 퍼뜨리고 RFC 9535가 채택한 관례를 따릅니다. [0] 은 그대로 첫 번째 요소입니다.
JSONPath는 표준화되어 있나요?
2024년부터 그렇습니다. RFC 9535가 문법과 의미론을 정의합니다. 그 이전에 작성된 구현들은 엣지 케이스(특히 필터와 유니온)에서 서로 달라, 같은 표현식이 라이브러리마다 다르게 동작할 수 있습니다. 실제 배포에 쓰는 구현으로 테스트하세요.
관련 도구