DevToolPal
ع

مقيِّم JSONPath

شغّل استعلام JSONPath على JSON واعرض كل قيمة مطابقة ومسارها، مع دعم المرشحات والدوال (RFC 9535).

يعمل محليًا، دون أي رفع

الخيارات

عرض

JSON

0 حرف · 0 B

المطابقات

0 حرف · 0 B

ما وظيفته

JSONPath لغة استعلام لـ JSON، تشبه ما تمثّله XPath بالنسبة إلى XML. استعلام مثل $.store.book[*].title يتنقّل داخل المستند ويختار القيم التي تهمّك. يشغّل هذا المقيِّم تعبير JSONPath على JSON الذي تلصقه ويعرض كل مطابقة في مصفوفة JSON: القيم المطابقة، أو مساراتها الموحّدة (مثل $['store']['book'][0]['title'])، أو كليهما.

يتبع الأداة المعيار RFC 9535 الصادر عن IETF عام 2024، لذا تتطابق النتائج مع المكتبات الحديثة في JavaScript وJava وPython وGo ولغات أخرى. استخدمه لتجربة استعلام قبل وضعه في الشيفرة، أو لمعرفة سبب عدم إرجاع المرشح أي نتيجة، أو لاستخراج بضعة حقول من استجابة API كبيرة.

طريقة الاستخدام

  1. الصق JSON في مربع JSON، أو ارفع ملف .json، أو انقر مثال لتحميل مستند المكتبة الكلاسيكي.
  2. اكتب استعلامًا في تعبير JSONPath. تتحدّث المطابقات أثناء الكتابة.
  3. اختر ما تريد في عرض: القيم، أو المسارات، أو أزواج المسار والقيمة.
  4. انسخ النتيجة أو نزّلها. عند وجود خطأ في الصيغة يُشار إلى الحرف الذي توقّف عنده التحليل.

ملخّص الصيغة

التعبيرالمعنى
$جذر المستند
.name أو ['name']عضو في كائن
[0]، [-1]عنصر في مصفوفة (السالب يُعدّ من النهاية)
[1:3]، [::2]شريحة: البداية والنهاية (غير مشمولة) والخطوة
*كل الأعضاء أو العناصر
..namename في أي عمق
[?@.price < 10]الأبناء الذين يكون المرشح صحيحًا لهم؛ @ هو العنصر الحالي

يمكن للمرشحات دمج الشروط باستخدام && و|| و!، والمقارنة مع أجزاء أخرى من المستند عبر $، واستدعاء الدوال: length(@.tags) > 2، وcount(@.items[*]) == 0، وmatch(@.code, '[A-Z]{3}') لمطابقة السلسلة كاملة مع التعبير النمطي، وsearch(@.title, 'Ring') لمطابقة في أي موضع.

مثال

مع بيانات المكتبة النموذجية، يختار هذا الاستعلام عناوين الكتب التي يقل سعرها عن 10:

$.store.book[?@.price < 10].title

ويعيد:

["Sayings of the Century", "Moby Dick"]

غيّره إلى $..book[?@.isbn].author لعرض مؤلفي الكتب التي لها رقم ISBN، أو إلى $..price لجمع كل الأسعار في المتجر، بما فيها سعر الدراجة.

الأسئلة الشائعة

› ما صيغة JSONPath المدعومة؟

الصيغة القياسية في RFC 9535: أسماء الأعضاء بالنقطة وبالأقواس المربعة، والحرف البدل، وفهارس المصفوفات (بما فيها السالبة)، والشرائح، والبحث في كل المستويات باستخدام ..، والمرشحات مع المقارنات و && || !، والدوال length() وcount() وmatch() وsearch() وvalue(). الصيغة القديمة ?(@.price < 10) تعمل أيضًا لأن الأقواس للتجميع فقط.

› لماذا يعيد استعلامي مصفوفة فارغة؟

المصفوفة الفارغة تعني أن الاستعلام صالح لكن لم يطابق شيئًا. تحقّق من أسماء الأعضاء (حساسة لحالة الأحرف) ومن كون القيمة مصفوفة أم كائنًا. شغّل استعلامًا واسعًا مثل $..* مع ضبط «عرض» على «المسارات» لترى محتوى المستند.

› هل يمكنني استخدام تعبيرات برمجية مثل [(@.length-1)]؟

لا. التعبيرات البرمجية تنفّذ شيفرة عشوائية وليست جزءًا من المعيار. استخدم فهرسًا سالبًا بدلًا منها: [-1] هو العنصر الأخير و[-2:] آخر عنصرين.

› هل يُرسل ملف JSON الخاص بي إلى خادم؟

لا. يُحلَّل الاستعلام ويُقيَّم داخل متصفحك بشيفرة الصفحة نفسها، ولا يُرفع أي شيء.