العودة إلى التحديثات
New releaseAug 17, 2026

JSONPath v10.4.1

فورك من JSONPath من http://goessner.net/articles/JsonPath/

مشاركة

npm

testing badge coverage badge

Known Vulnerabilities

Licenses badge

Node.js CI status

(انظر أيضًا تراخيص تبعيات التطوير.)

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())
    • محددات مختصرة @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.

الخصائص

تشمل الخصائص التي يمكن توفيرها على كائن الخيارات أو طريقة التقييم (كوسيطة أولى):

الفئات