
فورك من JSONPath من http://goessner.net/articles/JsonPath/
(انظر أيضًا تراخيص تبعيات التطوير.)
تحليل وتحويل واستخراج انتقائي للبيانات من مستندات JSON (وكائنات JavaScript).
يوسّع jsonpath-plus المواصفة الأصلية بإضافة بعض
المعاملات الإضافية ويوضّح بعض السلوكيات التي لم
تكن المواصفة الأصلية قد نصّت عليها صراحةً.
جرّب العرض التوضيحي في المتصفح أو Runkit (Node).
يرجى ملاحظة: هذا المشروع لا تتم صيانته بنشاط حاليًا. قد نقبل طلبات سحب موثّقة جيدًا أو بعض التحديثات البسيطة، لكننا لا نسعى إلى إجراء إصلاحات أو إضافة ميزات جديدة بأنفسنا.
^ للحصول على العنصر الأب للعنصر المطابق~ للحصول على أسماء الخصائص للعناصر المطابقة (كمصفوفة)@null(), @boolean(), @number(), @string(), @array(), @object()@integer()@scalar() (الذي يقبل أيضًا undefined والأعداد
غير المنتهية عند الاستعلام عن كائنات JavaScript بالإضافة إلى جميع الأنواع الأساسية غير الكائنية/غير الدالية)@other() القابل للاستخدام بالاقتران مع otherTypeCallback المعرّف من المستخدم@undefined(), @function(), @nonFinite())@path/@parent/@property/@parentProperty/@root داخل الفلاتر` لتهريب التسلسل المتبقي@['...']/?@['...'] لتهريب الأحرف الخاصة داخل
أسماء الخصائص في الفلاتر$.. (الحصول على جميع المكوّنات الأب)jsonpath-plus يتمتع بأداء متسق مع مجموعات البيانات الكبيرة والصغيرة مقارنة بمكتبات استعلام json الأخرى وفقًا لـ json-querying-performance-testing. يمكنك التحقق من هذه النتائج من خلال تشغيل المشروع بنفسك وإضافة المزيد من حالات الأداء.
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 Module (للمتصفحات الحديثة):
<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.
تشمل الخصائص التي يمكن توفيرها على كائن الخيارات أو طريقة التقييم (كوسيطة أولى):