
JSONPath v10.4.1
فورك من JSONPath من http://goessner.net/articles/JsonPath/
(انظر أيضًا تراخيص التبعيات التطويرية)
JSONPath Plus
تحليل البيانات وتحويلها واستخراجها بشكل انتقائي من مستندات JSON (وكائنات JavaScript).
تعمل jsonpath-plus على توسيع المواصفات الأصلية لإضافة بعض
العوامل الإضافية وتوضح بعض السلوكيات التي لم تحددها المواصفات
الأصلية.
جرّب العرض التوضيحي في المتصفح أو Runkit (Node).
يرجى ملاحظة: هذا المشروع لا يحظى حاليًا بصيانة نشطة. قد نقبل طلبات سحب موثقة جيدًا أو بعض التحديثات البسيطة، ولكننا لا ننوي إجراء إصلاحات أو إضافة ميزات جديدة بأنفسنا.
الميزات
- متوافق مع مواصفات jsonpath الأصلية
- إضافات أو توضيحات ملائمة غير موجودة في المواصفات الأصلية:
^للحصول على العنصر الأب لعنصر مطابق~للحصول على أسماء الخصائص للعناصر المطابقة (كمصفوفة)- محددات النوع للحصول على:
- أنواع JSON الأساسية:
@null()،@boolean()،@number()،@string()،@array()،@object() @integer()- النوع المركب
@scalar()(الذي يقبل أيضًاundefinedو الأعداد غير المنتهية عند الاستعلام عن كائنات JavaScript بالإضافة إلى جميع الأنواع الأساسية غير الكائنية وغير الدالية) @other()يمكن استخدامه معotherTypeCallbackمعرف من قبل المستخدم- أنواع غير JSON يمكن استخدامها مع ذلك عند الاستعلام عن
كائنات JavaScript غير JSON (
@undefined()،@function()،@nonFinite())
- أنواع JSON الأساسية:
@path/@parent/@property/@parentProperty/@rootمحددات مختصرة داخل عوامل التصفية- الهروب
`لهروب التسلسل المتبقي- صيغة
@['...']/?@['...']لهروب الأحرف الخاصة داخل أسماء الخصائص في عوامل التصفية
- توثيق
$..(الحصول على جميع المكونات الأبوية)
- تنسيقات تصدير ESM وUMD
- بالإضافة إلى القيم المستعلم عنها، يمكن إرجاع معلومات وصفية متنوعة بما في ذلك المسارات أو المؤشرات إلى القيمة، وكذلك الكائن الأب واسم الخاصية الأب (للسماح بالتعديل).
- أدوات للتحويل بين المسارات والمصفوفات والمؤشرات
- خيار منع التقييمات المسموح بها في المواصفات الأصلية أو توفير بيئة معزولة للقيم المُقيَّمة.
- خيار استدعاء لمعالجة النتائج عند الحصول عليها.
قياس الأداء
تتمتع jsonpath-plus بأداء ثابت مع مجموعات البيانات الكبيرة والصغيرة مقارنة بمكتبات الاستعلام عن JSON الأخرى وفقًا لـ json-querying-performance-testing. يمكنك التحقق من هذه النتائج من خلال تشغيل المشروع بنفسك وإضافة المزيد من حالات الأداء.
التثبيت```shell
npm install jsonpath-plus
## الإعداد
### Node.js```js
const {JSONPath} = require('jsonpath-plus');
const result = JSONPath({path: '...', json});
المتصفح
لاستخدام المتصفح، يمكنك تضمين dist/index-browser-umd.cjs مباشرةً؛ لا
حاجة لأي سحر من Browserify:```html
### ESM (المتصفحات الحديثة)
يمكنك أيضًا استخدام ES6 Module imports (للمتصفحات الحديثة):```html
<script type="module">
import {
JSONPath
} from './node_modules/jsonpath-plus/dist/index-browser-esm.js';
const result = JSONPath({path: '...', json: {}});
</script>
ESM (أدوات التجميع)
أو إذا كنت تقوم بتجميع JavaScript الخاص بك (مثلًا مع Rollup)، فما عليك سوى استخدام،
مع ملاحظة أن mainFields
يجب أن يتضمن browser لإصدارات المتصفح (بالنسبة لـ Node، الإعداد الافتراضي، الذي
يفحص module، يجب أن يكون مناسبًا):```js
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.
الخصائص
الخصائص التي يمكن توفيرها في كائن الخيارات أو في طريقة التقييم (كوسيطة أولى) تشمل: