ما هو اختبار JSONPath؟
يقوم مختبر JSONPath بتقييم تعبير JSONPath مقابل مستند JSON وإرجاع كل قيمة يختارها التعبير، بالإضافة إلى المسار الدقيق لكل مطابقة. JSONPath هي لغة استعلام لـ JSON، والطريقة التي تكون بها XPath لغة استعلام لـ XML: تكتب مسارًا قصيرًا مثل $.store.book[*].author وتعيد قائمة القيم المطابقة دون كتابة أي تعليمات برمجية. تقوم هذه الأداة بتحليل JSON الخاص بك، وتشغيل التعبير، وإظهار النتائج والمسار الطبيعي لكل منها.
الهدف من الاختبار هو ردود الفعل. عندما لا يُرجع تعبير JSONPath شيئًا، أو يُرجع أكثر مما توقعت، تكون المشكلة دائمًا تقريبًا عبارة عن تفاصيل بناء جملة صغيرة: حرف بدل مفقود، أو نمط قوس خاطئ، أو مرشح يقارن سلسلة برقم. يؤدي تشغيل الاستعلام مباشرة مقابل البيانات الحقيقية، ومعرفة العقد التي يلمسها، إلى تحويل هذا التخمين إلى فحص لمدة ثانيتين. وهذا هو نفس السبب الذي يجعل المطورين يبقون جهاز اختبار regex مفتوحًا بجوار المحرر الخاص بهم.
كل شيء يعمل في متصفحك. يتم تحليل JSON باستخدام محلل JSON المدمج ويتم تقييم التعبير بواسطة مترجم صغير مكتوب بلغة JavaScript، لذلك لا يتم تحميل أي شيء أو تسجيله أو تخزينه. وهذا مهم لأن عمل JSONPath يحدث عادةً مقابل استجابات واجهة برمجة التطبيقات وملفات التكوين التي تحمل الرموز المميزة أو المعرفات أو سجلات العملاء، وتحتفظ هذه الأداة بهذه الحمولة على جهازك الخاص وتستمر في العمل دون اتصال بالإنترنت بمجرد تحميل الصفحة.
JSONPath عبارة عن اتفاقية تحتوي على العديد من التطبيقات بدلاً من مواصفات واحدة، وهم يختلفون عند الحواف. بناء جملة التصفية هو الجزء الأقل قابلية للحمل، لذا فإن التعبير الذي يعمل في مكتبة واحدة قد يحتاج إلى تعديل في مكتبة أخرى. النسب العودي هو العملية المكلفة: فهو يمشي في كل عقدة في المستند، لذلك في ملف كبير، يكون الاستعلام الذي يبدأ بنقطتين أبطأ بشكل ملحوظ من المسار الصريح.
لتجربته كمقيم JSONPath عبر الإنترنت، انقر فوق تحميل العينة، واستبدل التعبير بـ $.store.book[؟(@.price < 10)].title وانقر فوق Evaluate. يُرجع وضع القيم ["Sayings of the Century"، "Moby Dick"] مع وضع علامة على الجزء 2 نتيجة. قم بتبديل الإخراج إلى المسارات وانقر فوق "تقييم" مرة أخرى، وسيُرجع نفس الاستعلام $.store.book[0].title و$.store.book[2].title، الذي يخبرك بأن الفلتر تخطى الكتب في الفهرس 1 و3. قم بتغيير التعبير إلى $..السعر وستحصل على خمسة أرقام، لأن النسب العودي يصل أيضًا إلى الدراجة.
كيفية استخدام جهاز اختبار JSONPath؟
الصق JSON الخاص بك
الصق كائنًا أو مصفوفة في مربع JSON، أو انقر فوق تحميل عينة لمستند المكتبة. يجب أن يكون الإدخال JSON صالحًا؛ يظهر خطأ تحليل في رسالة المتصفح الخاص بك، والتي عادةً ما تحدد الموضع حتى تتمكن من إصلاحه.
اكتب تعبير JSONPath
أدخل مسارًا مثل $.store.book[*].title أو $..price. ابدأ من $ للجذر، واستخدم النقاط أو الأقواس للأطفال، وأضف عوامل تصفية مثل [؟(@.price < 10)] للاختيار حسب القيمة.
اقرأ المباريات
انقر فوق تقييم لتشغيل التعبير؛ يسرد جزء المطابقات كل قيمة متطابقة ويظهر عدد النتائج. قم بتبديل الإخراج إلى المسارات أو الإدخالات وانقر فوق تقييم مرة أخرى لمعرفة مصدر كل نتيجة.
انسخ النتيجة
انسخ القيم المطابقة أو قائمة المسارات أو إدخالات المسار والقيمة الكاملة كـ JSON للصقها في التعليمات البرمجية أو الاختبارات أو الوثائق الخاصة بك.
الميزات الرئيسية
بناء جملة المسار الكامل
الجذر، والطفل، والنسب العودي (..)، وحرف البدل (*)، وفهرس المصفوفة بما في ذلك الفهرس السلبي، والاتحادات، وشرائح نمط بايثون كلها مدعومة، لذا فإن معظم أمثلة JSONPath المنشورة تعمل دون تغيير.
تصفية التعبيرات
حدد العقد حسب القيمة باستخدام عوامل التصفية مثل [؟(@.price < 10 & @.category == "fiction")]. عوامل المقارنة، والتحقق من الوجود، و&&/|| يتم تقييم المجموعات لكل عنصر.
القيم أو المسارات أو الإدخالات
راجع القيم المتطابقة، أو المسار الطبيعي لكل مطابقة، أو كليهما معًا كإدخالات. يعد إخراج المسار مفيدًا لبناء التعبير الذي تحتاجه.
مسح رسائل الخطأ
يتم الإبلاغ عن JSON غير الصالح والتعبيرات المشوهة بشكل منفصل برسالة محددة، حتى تعرف ما إذا كان سيتم إصلاح البيانات أو الاستعلام بدلاً من التحديق في نتيجة فارغة.
Frequently Asked Questions
Related Tools
JSON Schema Generator
Generate a JSON Schema from any JSON sample. Infers types, merges arrays of objects into one item schema, derives required fields, and detects date-time, email, uri, and uuid formats. Draft-07 and 2020-12 output. 100% client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
JSON to XML
Convert JSON to well-formed XML instantly. Map object keys to elements, @-prefixed keys to attributes and #text to content, expand arrays into repeated tags, and export minified or pretty-printed XML. 100% client-side.
XML Formatter
Format, beautify, minify, and validate XML online - preserves comments, CDATA, and attribute order, with clear error reporting
Comments
0 comments
No comments yet. Be the first to share your thoughts!