
(開発依存関係のライセンスも参照してください)
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 メソッド(最初の引数として)に指定できるプロパティには、以下が含まれます: