
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. يمكنك التحقق من هذه النتائج من خلال تشغيل المشروع بنفسك وإضافة المزيد من حالات الأداء.
التثبيت
npm install jsonpath-plus
الإعداد
Node.js
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>
ESM (المتصفحات الحديثة)
يمكنك أيضًا استخدام استيرادات ES6 Module (للمتصفحات الحديثة):
<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، يجب أن يكون مناسبًا):
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.
الخصائص
تشمل الخصائص التي يمكن توفيرها على كائن الخيارات أو طريقة التقييم (كوسيطة أولى):