JSONPath 사용법
개요
Json Path 는 Json 객체를 탐색하기 위한 표준화된 방법입니다. XML 내 데이타를 탐색하는 XPath 와 유사하지만 훨씬 간단하고 쉽습니다.
복잡한 구조의 json 데이타를 탐색하려면 꼭 알아두어야 할 지식으로 MySQL 5.7부터 지원하는 Json 컬럼을 다룰때에도 json path 방식을 사용할 수 있습니다.
JSONPath 와 비슷한 JMESPath 라는 새로운 규격이 있습니다.
문법
$ 는 ROOT 를 표시하며 하위 element 에 접근하려면 .ELEMENT_NAME 형식을 사용하면 됩니다.
예로 다음 쿼리는 ROOT 아래에 있는 string 필드의 값(foo) 를 리턴합니다.
$.string
.ELEMENT_NAME 형식은 계층적으로 사용할 수 있으며 다음 쿼리는 object attribute 의 property 필드의 값(value) 을 리턴합니다.
$.object.property
Array 처리
배열의 모든 행을 단일행으로 처리합니다.
아래 쿼리는 array 필드의 값인 1,2,3 을 배열로 리턴합니다.
$.array[0:]
만약 두번째 요소부터 가져오려면 1 을 사용합니다.
$.array[1:]
구현 Library
Java
자바의 JSON Path 구현물은 https://github.com/json-path/JsonPath 가 유명한 것 같습니다.
PHP
- https://github.com/FlowCommunications/JSONPath - github 에 star 제일 많습니다.
같이 보기
Ref
- https://docs.aws.amazon.com/ko_kr/kinesisanalytics/latest/dev/about-json-path.html
- https://valiantys.atlassian.net/wiki/spaces/NFEED58X/pages/66813995/JSONPath+explained
- https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html#function_json-search
- https://dev.mysql.com/doc/refman/5.7/en/json.html#json-path-syntax
- https://jsonpath.com/