استعلام JSON بـ JSONPath
استعلم عن JSON بـ JSONPath: أحرف بدل وبحث تكراري وشرائح ومرشّحات مثل [?(@.price < 10)]. تتحدّث النتائج أثناء الكتابة. ليست صياغة jq.
$ هو الجذر؛ .name أو ['name'] يختار عنصرًا فرعيًا؛ [0] عنصرًا من المصفوفة؛ [*] كل العناصر؛ .. يبحث على أي عمق؛ [?(@.price < 10)] للتصفية؛ [-1:] يأخذ العنصر الأخير.
يعمل بالكامل في متصفحك. لا يتم رفع بياناتك أبدًا.
أدوات ذات صلة
عرض الكلما هو استعلام JSON (JSONPath)؟
تقيّم أداة استعلام JSON تعابير JSONPath على JSON الخاص بك وتعرض كل قيمة مطابقة كمصفوفة JSON. تدعم أحرف البدل والبحث التكراري وشرائح المصفوفات وتعابير التصفية. ملاحظة: تستخدم صياغة JSONPath ($.store.book[*].title) وليس صياغة الأنابيب في jq.
كيفية استخدام استعلام JSON (JSONPath)
- الصق JSON في مربع مدخل JSON (أو انقر مثالًا يحمّل أيضًا بيانات نموذجية).
- اكتب تعبير JSONPath، مثل
$..price. - اقرأ القيم المطابقة في الناتج؛ وتُظهر التسمية عدد المطابقات.
- انسخ مصفوفة النتيجة بزر نسخ.
مثال
{"store":{"book":[{"title":"A","price":8},{"title":"B","price":12}]}}
Query: $.store.book[?(@.price < 10)].title [ "A" ]
متى تستخدم استعلام JSON (JSONPath)
استخدمه لاختبار تعابير JSONPath قبل استخدامها في أدوات تقبله (بوابات API وkubectl -o jsonpath في Kubernetes وأطر الاختبار والمراقبة). وإن احتجت ميزات jq مثل الأنابيب وmap وبناء الكائنات فاستخدم jq نفسه – فهي غير مدعومة. ولمسار واحد بعينه فباحث مسارات JSON أبسط.
كيف يعمل استعلام JSON (JSONPath)
تُقيَّم الاستعلامات بمكتبة jsonpath-plus (JSONPath لـ Goessner مع امتدادات). $ هو الجذر، و.name أو ['name'] يختار خاصية، و[0] فهرسًا، و[*] كل الأبناء، و.. يبحث في كل عمق، و[start:end] يقتطع المصفوفات (تُحسب الفهارس السالبة من النهاية)، و[?(…)] يصفّي مع @ للعنصر الحالي. وتعمل تعابير التصفية في المقيّم الآمن لـ jsonpath-plus، الذي يدعم المقارنات والعوامل المنطقية لكنه لا ينفّذ JavaScript عشوائيًا. والنتيجة دائمًا مصفوفة من المطابقات تُطبع بمسافتين بادئتين.
حالات الاستخدام الشائعة
- استخراج كل الأسعار أو المعرّفات من استجابة API
- اختبار JSONPath لاختبارات API أو قواعد المراقبة
- تصفية عناصر المصفوفة بشرط
- تجربة استعلامات بأسلوب kubectl jsonpath
ملاحظة أمنية
كل شيء يعمل محليًا داخل متصفحك؛ الكود الذي تلصقه لا يُرفع إلى أي خادم.
الأسئلة الشائعة
هل هذا jq؟
لا. يستخدم JSONPath، وهي لغة استعلام مختلفة. أنابيب jq ودوالّه غير مدعومة.
لماذا النتيجة دائمًا مصفوفة؟
قد يطابق تعبير JSONPath أي عدد من القيم، لذا تُعاد كل المطابقات في مصفوفة.
هل يُرسَل JSON إلى خادم؟
لا، يعمل الاستعلام في متصفحك.
هل تفقد الأعداد الكبيرة دقتها هنا؟
نعم، تُقيَّم القيم أعدادًا في JavaScript، لذا قد تُقرَّب الأعداد الصحيحة فوق 2^53 في نتائج الاستعلام.