
http://goessner.net/articles/JsonPath/ 에서 가져온 JSONPath의 포크
(개발 의존성에 대한 라이선스도 참조하세요.)
JSON 문서(및 JavaScript 객체)에서 데이터를 분석, 변환, 선택적으로 추출합니다.
jsonpath-plus는 원래 명세를 확장하여 몇 가지 추가 연산자를 제공하고, 원래 명세에서 명시하지 않았던 일부 동작을 명확히 합니다.
브라우저 데모 또는 Runkit (Node)를 사용해 보세요.
참고: 이 프로젝트는 현재 활발히 유지보수되고 있지 않습니다. 문서화가 잘 된 PR이나 간단한 업데이트는 수용할 수 있지만, 직접 수정하거나 새로운 기능을 추가할 계획은 없습니다.
^~@null(), @boolean(), @number(), @string(), @array(), @object()@integer()@scalar() (JavaScript 객체를 쿼리할 때 undefined와 비유한 숫자도 허용하며, 모든 기본 비객체/비함수 타입도 포함)otherTypeCallback과 함께 사용할 수 있는 @other()@undefined(), @function(), @nonFinite())@path/@parent/@property/@parentProperty/@root`@['...']/?@['...'] 구문$.. (모든 부모 구성 요소 가져오기) 문서화jsonpath-plus는 json-querying-performance-testing에 따르면 다른 json 쿼리 라이브러리와 비교하여 크고 작은 데이터셋 모두에서 일관되게 성능이 우수합니다. 프로젝트를 직접 실행하고 더 많은 성능 사례를 추가하여 이러한 결과를 확인할 수 있습니다.
npm install jsonpath-plus
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
브라우저에서 사용하려면 dist/index-browser-umd.cjs를 직접 포함하면 됩니다.
Browserify 마법은 필요하지 않습니다:
<script src="node_modules/jsonpath-plus/dist/index-browser-umd.cjs"></script>
<script>
const result = JSONPath.JSONPath({path: '...', json: {}});
</script>
최신 브라우저를 위한 ES6 모듈 임포트를 사용할 수도 있습니다:
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
또는 JavaScript를 번들링하는 경우(예: Rollup 사용), 다음을 사용하면 되며,
mainFields에
브라우저 빌드의 경우 browser가 포함되어야 한다는 점에 유의하세요(Node의 경우
module을 확인하는 기본값이면 충분합니다):
import {JSONPath} from 'jsonpath-plus';
const result = JSONPath({path: '...', json});
사용 가능한 전체 시그니처는 다음과 같습니다:
const result = JSONPath([options,] path, json, callback, otherTypeCallback);
인수 path, json, callback, otherTypeCallback은
options에서 (사용 가능한 다른 속성들과 함께) 대안적으로
표현될 수 있습니다.
result는 발견된 모든 항목을 (선택적으로 배열로
감싸서) 포함하는 반면, callback은 각 항목이 발견될 때마다
어떤 작업을 수행하고자 할 때 사용할 수 있으며, 콜백 함수는
결과에서 발견되는 독립적인 항목의 수에 따라 0회에서 N회까지
실행됩니다. JSONPath의 사용 가능한 인수에 대한 자세한 내용은
아래 문서를 참조하십시오.
API 문서도 참조하십시오.
options 객체 또는 evaluate 메서드(첫 번째 인수로서)에 제공될 수 있는 속성은 다음과 같습니다: