jless - عارض JSON في سطر الأوامر
jless هو عارض سريع وقراءة فقط لبيانات JSON (و YAML) في Terminal. بدلاً من أنابيب الإخراج الخام عبر less أو jq والتمرير عبر جدران الأقواس، تحصل على شجرة قابلة للطي مع تمييز الألوان التي يمكنك التنقل فيها باستخدام مفاتيح Vim وطي الهياكل المتداخلة بعمق والبحث. بنيت في الأساس لاستكشاف استجابات API وملفات التكوين والمستندات JSON الكبيرة بسرعة.
التثبيت
| المنصة | الأمر |
|---|
| Cargo (all platforms) | cargo install jless |
| macOS (Homebrew) | brew install jless |
| Arch Linux | sudo pacman -S jless |
| Nix | nix-env -iA nixpkgs.jless |
| Binary | download from the GitHub Releases page |
| التحقق | jless --version |
فتح البيانات
| الأمر | الوصف |
|---|
jless data.json | فتح ملف JSON |
| `cat data.json | jless` |
| `curl -s URL | jless` |
jless --yaml config.yaml | فتح ملف YAML |
jless --mode line data.json | ابدأ في وضع سطر (raw-ish view) |
jless --help | قائمة الخيارات الكاملة |
الحركة
| المفتاح | الإجراء |
|---|
j / k | أسفل / أعلى |
h / l | Collapse / expand (or move to parent/child) |
g / G | اذهب إلى الأعلى / الأسفل |
Ctrl+f / Ctrl+b | الصفحة لأسفل / لأعلى |
Ctrl+d / Ctrl+u | نصف الصفحة لأسفل / لأعلى |
J / K | انتقل إلى أخ التالي/السابق |
Enter | بدل توسيع/انهيار على العقدة الحالية |
الطي والعروض
| المفتاح | الإجراء |
|---|
Space | Collapse / expand the current node |
c | انهيار جميع الأشقاء |
e | توسيع جميع الأطفال بشكل متكرر |
E | توسيع كل شيء |
C | انهيار عميق |
Tab (mode) | بدل بين وضع البيانات ووضع الخط |
% | القفز إلى القوس المطابق |
البحث
| المفتاح | الإجراء |
|---|
/pattern | البحث الأمامي |
?pattern | البحث للخلف |
n / N | المطابقة التالية / السابقة |
* | ابحث عن المفتاح الحالي |
| Search is regex | الأنماط تدعم التعبيرات العادية |
العمل مع المسارات والقيم
| المفتاح | الإجراء |
|---|
y then y | Yank (copy) the value under the cursor |
y then p | Yank the path to the current node (e.g. .users[0].name) |
y then v | Yank the value |
y then k | Yank the current key |
. | إظهار المسار الكامل للعقدة الحالية |
Yanking المسار مفيد بشكل خاص: انتقل إلى حقل بصري ثم الصق مساره jq-style في نص برمجي.
سير العمل المشتركة
# استكشف استجابة API كبيرة دون الغرق في الأقواس
curl -s https://api.example.com/data | jless
# فحص التكوين ونسخ المسار الدقيق لإعداد
jless config.json # navigate, then yy/yp to grab value or path
# تصفح YAML بنفس طريقة JSON
jless --yaml docker-compose.yaml
# Pair with jq: filter first, then explore the result interactively
jq '.items' big.json | jless
jless مقابل أدوات JSON الأخرى
| الجانب | jless | jq | fx |
|---|
| الوضع | عارض تفاعلي | Query/transform | تفاعلي + JS |
| Editing/transform | لا (قراءة فقط) | نعم | نعم |
| Folding tree UI | نعم | لا | نعم |
| Path yank | نعم | N/A | نعم |
| الأفضل لـ | الاستكشاف/الفحص | صحيح Transforms | استكشف + تحويل |
jless قراءة فقط بالتصميم — للتصفية والتحويل، أنابيب من خلال jq أولاً، ثم استكشف النتيجة في jless.
الموارد