jsonPath
jsonpath '은 JSON 데이터를 쿼리하기 위해 PostgreSQL SQL/JSON 경로 언어에 대한 지원을 구현합니다. 이는 SQL/JSON 쿼리 함수로 추가 처리를 위해 경로 엔진이 JSON 데이터에서 검색할 항목을 지정하는 구문 분석된 SQL/JSON 경로 표현식의 이진 표현을 제공합니다. SQL/JSON 경로 술어 및 연산자의 의미론은 일반적으로 SQL을 따릅니다. SQL/JSON 경로 구문은 일부 JavaScript 규칙을 사용합니다:- 회원 액세스에는 점(
.)이 사용됩니다. - 배열 액세스에는 대괄호(
[]')가 사용됩니다. - SQL/JSON 배열은 0부터 시작하는 일반 SQL 배열과 달리 0 상대 배열입니다(1부터 시작하는 일반 SQL 배열과 대조).
- 큰따옴표로 묶어야 합니다.
- 백슬래시 이스케이프는 입력하기 어려운 문자를 표현하기 위해 사용할 수 있습니다.
\" 을 입력해야 합니다. 백슬래시를 얻으려면 ' \\' 을 입력해야 합니다.- 다양한 ASCII 제어 문자의 경우
\b\f\n\r\t\v
- 4자리 16진수 코드 포인트로 식별되는 유니코드 문자의 경우
\uNNNN
- 16진수 두 자리로만 작성된 문자 코드의 경우
\xNN
- 1~6자리 16진수로 작성된 문자 코드의 경우
\u{N...}
- JSON 기본 유형의 경로 리터럴: 유니코드 텍스트, 숫자, 참, 거짓 또는 null입니다.
- 경로 변수.
- 접속자 운영자.
- 필터 표현식을 제공하거나 경로 평가 순서를 정의하는 데 사용할 수 있는
jsonpath연산자 및 메서드입니다.
jsonpath 변수
- $
- 쿼리할 JSON 텍스트(컨텍스트 항목)를 나타내는 변수입니다.
- 이름
- 명명된 변수입니다. 여러 JSON 처리 함수의 매개변수 '
vars'로 값을 설정할 수 있습니다. - @
- 필터 표현식에서 경로 평가 결과를 나타내는 변수입니다.
jsonpath 접근자
- .key
- ."$변수명"
- 지정된 키를 가진 객체 멤버를 반환하는 멤버 접근자입니다. 키 이름이 $로 시작하는 명명된 변수이거나 식별자의 JavaScript 규칙을 충족하지 않는 경우, 문자열 리터럴로 큰따옴표로 묶어야 합니다.
- .*
- 현재 객체의 최상위 레벨에 있는 모든 멤버의 값을 반환하는 와일드카드 멤버 접근자입니다.
- .**
- 현재 객체의 JSON 계층 구조의 모든 레벨을 처리하고 중첩 레벨에 관계없이 모든 멤버 값을 반환하는 재귀 와일드카드 멤버 접근자입니다. 이것은 SQL/JSON 표준의 PostgreSQL 확장입니다.
- .**{level}
- .**{start_level to end_level}
- .**와 동일합니다, 와 비슷하지만 중첩된 JSON 계층 구조 수준에 대한 필터가 있습니다. 중첩 레벨은 정수로 지정됩니다. 0 레벨은 현재 개체에 해당합니다. 가장 낮은 중첩 레벨에 액세스하려면 마지막 키워드를 사용하면 됩니다. 이것은 SQL/JSON 표준의 PostgreSQL 확장입니다.
- [아래 첨자, ...]
- 배열 요소 접근자입니다.
subscript'은 'index' 또는 'start_index'에서 'end_index'까지 두 가지 형태로 지정할 수 있습니다. 첫 번째 양식은 인덱스별로 단일 배열 요소를 반환합니다. 두 번째 양식은 제공된 'start_index' 및 'end_index'에 해당하는 요소를 포함하여 인덱스 범위별로 배열 슬라이스를 반환합니다. - [*]
- 모든 배열 요소를 반환하는 와일드카드 배열 요소 접근자입니다.
SQL/JSON 경로 언어
XML에 대한 ' SQL ' 액세스에 사용되는 ' XPath 표현식과 유사하게 ' SQL' /JSON 경로 표현식은 ' JSON ' 데이터에서 검색할 항목을 지정합니다.
PostgreSQL, 경로 표현식은 ' jsonpath 데이터 유형으로 구현됩니다. Jsonpath에 설명된 모든 요소를 사용할 수 있습니다.
JSON 쿼리 함수 및 연산자는 제공된 경로 표현식을 경로 엔진에 전달하여 평가합니다. 표현식이 쿼리된 JSON 데이터와 일치하면 해당 SQL/JSON 항목이 반환됩니다.
경로 표현식은 SQL/JSON 경로 언어로 작성됩니다. 여기에는 산술 표현식 및 함수가 포함될 수 있습니다. 쿼리 함수는 이러한 표현식을 텍스트 문자열로 취급하므로 제공된 표현식은 작은따옴표로 묶어야 합니다.
경로 표현식은 ' jsonpath'에서 허용하는 일련의 요소로 구성됩니다. 경로 표현식은 왼쪽에서 오른쪽으로 평가됩니다. 괄호를 사용하여 작업 순서를 변경할 수 있습니다. 평가가 성공하면 SQL/JSON 시퀀스가 생성됩니다. 평가 결과는 지정된 계산을 완료하는 JSON 쿼리 함수에 반환됩니다.
컨텍스트 항목 (쿼리할 JSON 데이터)을 참조하려면 경로 표현식에 ' $ ' 기호를 사용하면 됩니다. 하나 이상의 jsonpath 액세스자가 있는 표지판을 따라갈 수 있습니다. 컨텍스트 항목의 콘텐츠를 검색하기 위해 JSON 구조를 한 단계씩 내려갑니다. 이어지는 각 연산자는 이전 평가 단계의 결과를 처리합니다.
' jsonpath 연산자 및 메서드에 대한 자세한 내용은 jsonpath를 참조하세요