أداة اختبار JSONPath سريعة وخاصة
عند التعامل مع بيانات JSON ضخمة أو شديدة التداخل، قد يكون استخراج المعلومات الدقيقة التي تحتاجها أمراً شاقاً. توفر أداة اختبار JSONPath هذه بيئة حية لكتابة استعلاماتك واختبارها وتصحيح أخطائها. وبمجرد كتابة التعبير، تقوم الأداة بتقييمه فوراً ومطابقته مع بيانات JSON، لتعرض لك القيم المستخرجة والمسارات الدقيقة التي وُجدت فيها هذه القيم.
نظراً لأن أداة تقييم JSONPath هذه تعمل بالكامل في المتصفح (client-side)، فإن جميع عمليات المعالجة تتم محلياً على جهازك. لا تُرسل بيانات JSON الخاصة بك إلى أي خادم على الإطلاق. مما يعني أنه يمكنك بأمان لصق بيانات API الخاصة ببيئة الإنتاج، أو البيانات المُصدّرة من قواعد البيانات، أو ملفات الإعدادات الحساسة دون القلق بشأن تسريب البيانات أو انتهاك الخصوصية.
الميزات الأساسية للمطورين
- تقييم مباشر: تُحدَّث النتائج فوراً أثناء تعديلك لبيانات JSON أو الاستعلام. لا حاجة للنقر على زر إرسال أو انتظار استجابة من الخادم.
- تحليل آمن: تستخدم الأداة محرك تقييم آمن (
eval: 'safe') لمعالجة استعلاماتك، مما يمنع تنفيذ الأكواد الضارة مع الحفاظ على الدعم الكامل لتعبيرات التصفية المعقدة. - استخراج المسارات: بالإضافة إلى عرض القيم المتطابقة، تُولّد الأداة المسارات المطلقة لكل تطابق. يعد هذا مفيداً للغاية إذا كنت بحاجة إلى تحديث تلك العُقد المحددة برمجياً في وقت لاحق.
- أمثلة جاهزة: إذا كنت حديث العهد بهذه الصيغة، يمكنك تحميل نموذج لبيانات متجر كتب وتجربة عدة تعبيرات مكتوبة مسبقاً لترى كيف تعمل المُعاملات المختلفة.
كيفية كتابة استعلام JSONPath
يستخدم JSONPath صيغة محددة للتنقل عبر كائنات ومصفوفات JSON. إذا كنت ترغب في اختبار منطق تعبيرات JSONPath، فمن المفيد فهم المعاملات الأساسية:
$يمثل الكائن أو المصفوفة الجذر. يبدأ كل تعبير JSONPath مطلق بهذا الرمز.@يمثل العقدة الحالية التي تتم معالجتها. يُستخدم بشكل أساسي داخل تعبيرات التصفية..أو[]هي معاملات فرعية تُستخدم لتحديد الخصائص. على سبيل المثال،$.store.bookو$['store']['book']يؤديان نفس الغرض...هو معامل النزول العودي. يبحث عن مفتاح معين في أي مكان داخل شجرة JSON، بغض النظر عن مدى عمق تداخله (على سبيل المثال،$..priceيعثر على جميع الأسعار).*هو حرف بدل (wildcard) يطابق جميع العناصر في الكائن أو المصفوفة. على سبيل المثال،$.store.*يحدد كل شيء موجود مباشرة داخل كائن store.[?()]يُطبق تعبير تصفية. يمكنك استخدام المعاملات المنطقية القياسية بداخله. على سبيل المثال،$..book[?(@.author == 'Nigel Rees')]سيعثر على جميع الكتب التي كتبها هذا المؤلف المحدد.[start:end:step]يتيح لك اقتطاع المصفوفات، بشكل مشابه للغة Python.$.store.book[-1:]يحدد الكتاب الأخير في المصفوفة.
حالات الاستخدام الشائعة
تطوير وتصحيح واجهات برمجة التطبيقات (API). غالبًا ما تُرجع واجهات برمجة التطبيقات الحديثة مثل REST و GraphQL بيانات JSON ضخمة. بدلًا من كتابة كود مؤقت لتحليل وفحص الاستجابة، يمكنك لصق البيانات في أداة JSONPath هذه عبر الإنترنت للتحقق سريعًا من صحة هيكل البيانات وأن استعلاماتك تستخرج الحقول الصحيحة.
الاختبار الآلي. عند كتابة اختبارات التكامل أو الاختبارات الشاملة (باستخدام أدوات مثل Postman أو RestAssured أو Playwright)، غالبًا ما تحتاج إلى التأكد من وجود قيم معينة في استجابة JSON. يساعدك استخدام أداة اختبار jsonpath في تحسين نص الاستعلام قبل كتابته بشكل ثابت في حزمة الاختبار الخاصة بك.
استخراج البيانات وتحويلها. إذا كنت تقوم بترحيل البيانات أو بناء مسارات ETL (استخراج، تحويل، تحميل)، فغالبًا ما تحتاج إلى عزل مصفوفات أو كائنات معينة. يمكنك استخدام هذه الأداة لمعرفة المسارات الدقيقة المطلوبة لاستخراج بياناتك المستهدفة. إذا كانت بياناتك المصدرية بتنسيق XML، فيمكنك أولًا استخدام أداة تحويل XML إلى JSON، وإذا كنت بحاجة إلى تنسيق البيانات المصغرة قبل فحصها، فيمكن أن تساعدك أداة تنسيق JSON. يمكنك أيضًا استخدام أداة مقارنة JSON لمعرفة كيف تتغير بياناتك قبل التحويلات وبعدها.