برنامه نویسی

کاوش ابزار ./jq – DEV Community

من امروز به این پادکست، Kodsnack 585 (به زبان سوئدی) گوش دادم که در مورد ابزار jq بحث می کند. این ابزار برای مدتی در رادار من بود و این قسمت باعث شد بالاخره آن را امتحان کنم.

این jq ابزار از مخزن اوبونتو در دسترس است و می تواند به این صورت نصب شود.

sudo apt-get install jq
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

ما قصد داریم از این مثال JSON از json.org برای آزمایش برخی چیزها با jq استفاده کنیم. cat data.json، توجه داشته باشید که قالب بندی فایل عمداً کامل نیست:

{"widget": {
"debug": "on",
"window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
"width": 500,
"height": 500},
    "image": {"src": "Images/Sun.png",
        "name": "sun1",
 "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
 "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
}}}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

اولین دستور jq چاپ زیبای JSON خواهد بود. jq . data.json

چاپ زیبا

و برای استخراج یک فیلد از داده های JSON، می توانید از این دستور استفاده کنید. jq '.widget.window.title' data.json.

فیلد استخراج

با استفاده از دستور می توانیم یک فیلد را حذف کنیم jq 'map(del(.text))' data.json.

حذف فیلد

لیست کردن تمام فیلدها در فایل امکان پذیر است، jq '[.. | objects | keys[]] | unique' data.json.

لیست تمام فیلدها

این لیست می تواند برای همیشه ادامه یابد، jq ابزار ویژگی های زیادی برای کاوش دارد و من فقط کمی از سطح را در اینجا خراشیده ام. به نظر می رسد یک نقطه شروع خوب برای کسب اطلاعات بیشتر، ویکی در مخزن GitHub jq باشد. یادداشت‌های نمایش از پادکست Kodsnack دارای منابع عالی نیز هستند.

با این حال، اکنون این ابزار را روی دستگاه خود دارم و می‌توانم هر زمان که نیاز به تبدیل یا درخواست داده‌های JSON داشته باشم، آن را امتحان کنم.

پرس و جو مبارک!

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا