JSONPath 검사

브라우저에서 JSONPath 질의를 실행합니다. 문서를 정리하는 곳은 JSON 포매터

질의할 수 있는 것

JSONPath는 JSON 문서에서 값을 고릅니다. 이 페이지는 실용적인 부분집합을 실행하고, 일치를 모두 JSON으로 돌려줍니다. 문서를 먼저 다듬으려면 JSON 포매터를 씁니다.

사용 방법

  1. 위 칸에 JSON을 붙여 넣고 JSONPath에 경로를 넣습니다. 경로는 $에서 시작합니다.
  2. 변환이 질의를 실행합니다. 경로 옆 줄에 일치 개수가 나옵니다.
  3. 예제 보기는 {"store":{"book":[{"author":"Nigel","price":8},{"author":"Evelyn","price":12}],"bicycle":{"price":19}}}와 경로 $.store.book[*].author를 불러옵니다. 결과는 Nigel과 Evelyn의 JSON 배열이고, 개수는 2입니다.
  4. 칩은 칸이 비어 있으면 같은 문서를 채웁니다. $.store.book[?(@.price<10)].author는 Nigel을 돌려줍니다. $..price는 8, 12, 19를 돌려줍니다.
  5. 모두 지우기는 문서를 비우고, 경로를 $로 되돌리며, 개수를 지웁니다. 결과 복사는 일치한 JSON을 복사합니다.

이 페이지가 받는 경로

$는 루트입니다. .key와 ['key']는 속성을 읽습니다. [n]는 인덱스 하나를 읽고, 음수 인덱스는 끝에서 셉니다. [*]는 모든 요소나 속성을 읽습니다. [start:end:step]는 배열을 자르며 end는 포함하지 않습니다. [0,2]는 그 인덱스를 고릅니다. ..key는 중첩 객체를 모두 돌며 그 키를 모읍니다.

필터 형태는 [?(@.price<10)] 또는 [?(@.author=='Nigel')]입니다. 비교는 ==, !=, <, >, <=, >=입니다. 텍스트는 그대로 비교합니다. 순서는 숫자에 적용합니다. 필터는 배열에서 실행됩니다. 알 수 없는 경로, 또는 파싱되지 않는 JSON은 오류입니다. 일치가 0개여도 빈 배열로 유효합니다.

쓰는 곳

  • 목록의 각 객체에서 필드 하나를 꺼냅니다.
  • 가격이 어떤 수보다 작은 행만 남깁니다.
  • 다른 객체에 중첩된 가격까지 포함해 모든 가격을 찾습니다.

질문

저자가 한 명인데 결과가 배열인 이유는 무엇입니까?

모든 질의는 일치 목록을 돌려주므로, 하나가 맞아도 원소가 하나인 배열입니다.

스크립트 식이 동작합니까?

필터는 @와 그 필드에 대한 비교 하나입니다. 다른 스크립트 문법은 오류로 멈춥니다.