JSONPath 쿼리 플레이그라운드
RFC 9535 JSONPath 쿼리를 테스트하고 각 일치 항목을 경로와 함께 확인
JSON을 붙여 넣거나, 파일을 열거나, 예제를 불러오세요.
RFC 9535 JSONPath를 브라우저의 백그라운드 작업에서 jsonpath-rfc9535 1.3.0으로 평가합니다.
JSONPath 쿼리 플레이그라운드란?
JSON 문서에서 노드를 선택하는 IETF 표준인 RFC 9535 JSONPath를 시험해 보는 플레이그라운드입니다. JSON을 붙여 넣고 $.store.products[?@.price < 50].name 같은 쿼리를 작성하면 각 일치 항목의 값, 정규화된 경로, JSON 포인터를 볼 수 있습니다. API 테스트, 설정 도구, OpenAPI 오버레이, Kubernetes 방식 도구에 쓸 선택자를 작성하고 어떤 노드가 선택되는지 정확히 확인하세요. JSON을 변환하거나 재구성하려면 jq 기반 JSON 쿼리 플레이그라운드를, 텍스트로 키나 값을 찾으려면 JSON 검색를 사용하세요.
지원 구문
루트 $, 멤버 이름($.name과 $['name']), 음수를 포함한 배열 인덱스([0], [-1]), 와일드카드([*]와 .*), 선택적 간격이 있는 슬라이스([1:5], [::-1]), 하나의 대괄호 안 여러 선택자([0,2] 또는 ['a','b']), 하위 항목(..name과 ..*), 필터를 지원합니다. 필터([?…])는 == != < <= > >=로 비교하고, && || !와 괄호로 조합하며, ?@.member로 존재 여부를 검사합니다. 이 검사는 값이 false나 null이어도 멤버가 있으면 참입니다. RFC의 다섯 함수 length(), count(), match(), search(), value()를 사용할 수 있습니다. 구문 예제의 각 항목은 상점 카탈로그 예제용 쿼리를 불러옵니다.
match()와 search()의 정규식
match()와 search()는 I-Regexp(RFC 9485) 패턴을 받습니다. 이는 상호 운용 가능한 작은 정규식 부분 집합입니다. match()는 문자열 전체와 일치해야 하고, search()는 문자열 어디에서든 패턴을 찾습니다. Unicode는 기본으로 켜져 있으며 점은 줄바꿈을 제외한 모든 문자와 일치합니다. 역참조, 전방·후방 탐색, 게으른 수량자, 플래그는 I-Regexp에 포함되지 않으므로 피하세요. 다른 JSONPath 구현은 이를 거부하거나 무시합니다.
정규화된 경로와 JSON 포인터
각 일치 항목에는 $['store']['products'][0]['name'] 같은 RFC 9535 정규형인 정규화된 경로가 표시되며, 멤버 이름의 아포스트로피, 백슬래시, 제어 문자는 이스케이프됩니다. 또한 /store/products/0/name 같은 RFC 6901 JSON 포인터도 표시되며, ~는 ~0이 되고 /는 ~1이 됩니다. 문서 전체는 빈 포인터입니다. 경로는 테스트에, 포인터는 JSON Patch 작업이나 $ref 값에 사용하세요.
제한 사항과 개인정보
쿼리는 브라우저의 백그라운드 작업에서 실행되며, 아무것도 업로드하거나 저장하지 않고 선택한 결과 표시 방식만 기억합니다. 256 KB 이하 입력은 입력하는 동안 다시 실행되고, 10 MB 이하의 더 큰 입력은 실행을 누르면 실행되며, 각 실행은 15초 후 중지됩니다. 목록에는 처음 2,000개의 일치 항목이 표시되지만 개수와 모두 복사 작업에는 모든 일치 항목이 포함됩니다. 이 도구는 노드를 선택만 하며 데이터를 변환하지 않습니다. 스크립트 식이나 ~ 키 연산자 같은 오래된 비표준 확장은 구문 오류로 거부되며, @.length는 length라는 이름의 멤버를 읽습니다(크기는 length(@)를 사용). JavaScript 정밀도를 넘는 숫자는 표현 가능한 가장 가까운 값으로 표시됩니다.
