كيفية استخدام مختبِر JSON Path
- الصق مستند JSON.
- اكتب تعبير JSONPath مثل $.store.book[?(@.price < 10)].title.
- افحص النتائج المطابقة؛ وانسخ القيم أو المسارات المعيارية.
مزايا مختبِر JSON Path
- صياغة JSONPath كاملة: الوصول بالنقطة/الأقواس، وأحرف البدل، والنزول التكراري، والشرائح، والاتحادات
- تعبيرات تصفية بالمقارنات والتعبيرات النمطية (=~) وin / nin والعمليات الحسابية والمنطق البولياني
- تقييم آمن — دون eval()، إذ تُحلَّل التعبيرات إلى شجرة صياغة مجردة (AST)
- النتائج كجدول (المسار والنوع والقيمة) ومصفوفة JSON بالقيم وقائمة بالمسارات المعيارية
- تقييم فوري أثناء تحرير التعبير أو المستند
- أخطاء صياغة واضحة تشير إلى موضع المشكلة
مثال على مختبِر JSON Path
العثور على الكتب الرخيصة
الإدخال:
$.store.book[?(@.price < 10)].titleالنتيجة:
$.store.book[0].title "Sayings of the Century"
$.store.book[2].title "Moby Dick"الأسئلة الشائعة حول مختبِر JSON Path
ما ميزات JSONPath المدعومة؟
صيغتا النقطة والأقواس المربعة، وأحرف البدل (*)، والنزول التكراري (..)، وفهارس المصفوفات بما فيها السالبة، والشرائح [start:end:step]، والاتحادات [0,2] و["a","b"]، والتصفية [?(…)]، وصيغة البرنامج النصي (@.length-1).
ماذا يمكنني كتابته داخل التصفية؟
المقارنات (==, !=, <, <=, >, >=)، والتعبيرات النمطية (@.name =~ /^a/i)، والانتماء (@.tag in ["a","b"])، ووجود الخاصية (@.isbn)، والعمليات الحسابية والمعاملات المنطقية (&&, ||, !). كما يُسمح بالإشارة إلى الجذر ($).
هل تقييم التصفية آمن؟
نعم. تُحلَّل التعبيرات إلى شجرة صياغة مجردة صغيرة وتقيّمها الأداة بنفسها — ولا يُستخدم eval() أو Function() أبداً، لذا لا يمكن تنفيذ أي كود عشوائي.
ما «المسار المعياري» (normalized path)؟
هو المسار الفريد بصيغة الأقواس/النقطة لكل نتيجة مطابقة، مثل $.store.book[2].title. استخدمه للإشارة إلى القيمة بدقة في الاختبارات أو التوثيق.
ملاحظات تقنية
يُقسَّم المسار إلى رموز (tokens) تمثّل مقاطع مختلفة (ابن، حرف بدل، فهرس، شريحة، اتحاد، تصفية، برنامج نصي). وتُترجم عبارات التصفية إلى شجرة تعبيرات صغيرة تدعم المعاملات ==، !=، <، <=، >، >=، =~، in، nin، contains، &&، ||، !، والسالب الأحادي، و+ − * / %. أما المقارنات بين أنواع غير متطابقة فتُقيَّم إلى false، على غرار سلوك مكتبات JSONPath الشائعة.