این دستور jshon است که می تواند در ارائه دهنده هاست رایگان OnWorks با استفاده از یکی از چندین ایستگاه کاری آنلاین رایگان ما مانند Ubuntu Online، Fedora Online، شبیه ساز آنلاین ویندوز یا شبیه ساز آنلاین MAC OS اجرا شود.
برنامه:
نام
jshon - تجزیه کننده JSON برای پوسته
خلاصه
jshon -[P|S|Q|V|C|I|0] [-F مسیر] -[t|l|k|u|p|a] -[s|n] مقدار -[e|i|d] فهرست مطالب
شرح
jshon تجزیه، خواندن و ایجاد JSON. این طراحی شده است تا حد امکان قابل استفاده از
درون پوسته و جایگزین تجزیه کننده های adhoc شکننده ساخته شده از grep/sed/awk و همچنین
تجزیه کننده های سنگین وزن یک خطی ساخته شده از پرل/پایتون.
jshon متن json را از stdin بارگیری می کند، اقدامات را انجام می دهد، سپس آخرین عمل را در stdout نمایش می دهد.
برخی از گزینه ها json را خروجی می دهند، برخی دیگر خلاصه متن ساده را خروجی می دهند. چون باش خیلی
ساختار داده تودرتو ضعیف، jshon JSON را به عنوان یک شی بومی به عنوان یک نمونه برمی گرداند
کتابخانه خواهد بود. بجای jshon تاریخچه ای از ویرایش ها را در یک پشته حفظ می کند و شما آن را دستکاری می کنید
بالاترین عنصر JSON
اقدامات
هر اقدام به شکل یک گزینه کوتاه است. برخی نیاز به استدلال دارند. در حالی که بسیاری از موارد
of jshon را می توان از طریق یکدیگر لوله کرد، اقدامات باید به طور متوالی زنجیره شوند تا کاهش یابد
تماس می گیرد. همه نمونه ها از این نمونه json استفاده می کنند:
{"a":1,"b":[true,false,null,"str"],"c":{"d":4,"e":5}}
jshon [اعمال] < نمونه.json
بیشتر کاربردهای معمول فقط خواندنی فقط به چندین مورد نیاز دارند -e اقدامات و یکی -a در وسط
آنها.
-t (نوع) رشته، شی، آرایه، عدد، bool، null را برمی گرداند
jshon -t -> object
-l (طول) یک عدد صحیح برمی گرداند. فقط روی رشته، شی، آرایه کار می کند.
jshon -l -> 3
-k (کلیدها) فهرستی از کلیدها را با خط جدید جدا شده برمی گرداند. فقط روی شی کار می کند.
jshon -k -> abc
-e شاخص
(extract) مقدار json را در "index" برمی گرداند. فقط روی شی، آرایه کار می کند. شاخص یک
آرایه یک عدد صحیح است.
jshon -ec -> {"d":4,"e":5}
-a (در سراسر) اقدامات باقی مانده را در سراسر عنصر انتخاب شده نگاشت می کند. فقط روی اشیاء کار می کند
و آرایه ها چندگانه -a تماسها را میتوان تودرتو کرد، اگرچه نیاز در عمل نادر است.
jshon -eb -a -t -> bool bool null string
-s ارزش
(string) یک رشته کدگذاری شده json را برمی گرداند. بعداً می توان (-i) را به موجودی اضافه کرد
ساختار.
jshon -s "back\slash" -> "back\\slash"
-n ارزش
(nonstring/number) یک عنصر json را برمی گرداند. بعداً می توان (-i) را به موجودی اضافه کرد
ساختار مقادیر معتبر عبارتند از "true"، "false"، "null"، "array"، "object"، اعداد صحیح و
شناور است. اختصارات t، f، n، [] و {} نیز به ترتیب کار می کنند.
شی jshon -n -> {}
-u (unstring) یک رشته رمزگشایی شده را برمی گرداند. فقط روی انواع ساده کار می کند: رشته، int، واقعی،
بولی، پوچ.
jshon -eb -e 3 -u -> str
-p (پاپ) آخرین دستکاری را از پشته بیرون می آورد و تاریخچه را به عقب برمی گرداند. مفید برای
استخراج چندین مقدار از یک شی
jshon -ec -ed -u -p -ee -u -> 4 5
-d شاخص
(حذف) یک آیتم را در یک آرایه یا شی حذف می کند. شاخص های آرایه منفی بسته می شوند
دور و بر.
jshon -db -> {"a":1,"c":{"d":4,"e":5}}
-i شاخص
(درج) پیچیده است. برعکس عصاره است. Extract یک عنصر فرعی json قرار می دهد
روی پشته Insert یک عنصر فرعی را از پشته حذف می کند و آن بیت json را درج می کند
به آرایه / شی بزرگتر در زیر. از استخراج برای شیرجه زدن در درخت json استفاده کنید،
حذف/رشته/غیررشته برای تغییر چیزها، و درج کنید تا تغییرات را به داخل برگردانید
درخت.
jshon -ea -ia -> json اصلی
jshon -s one -ia -> {"a":"one"، ...}
آرایه ها به شیوه ای خاص مدیریت می شوند. عبور از اعداد صحیح یک مقدار بدون درج می کند
رونویسی اعداد صحیح منفی مانند رشته «پیوست» قابل قبول هستند. برای بازنویسی
یک مقدار در یک آرایه: حذف فهرست، -n/s مقدار جدید، و سپس در شاخص درج کنید.
jshon -eb -d 0 -sq -i 0 -> {"b":"q",false,null,"str"}
غیر دستکاری
چندین گزینه متا وجود دارد که مستقیماً json را ویرایش نمی کند. حداکثر یک بار با اینها تماس بگیرید
فراخوانی
-F
(فایل) به جای stdin از یک فایل می خواند. تنها گزینه غیر دستکاری برای گرفتن یک
بحث و جدل.
-P (jsonp) یک تماس jsonp را قبل از ادامه عادی حذف می کند.
-S (مرتب سازی) json را به جای ترتیب اصلی، مرتب شده بر اساس کلید برمی گرداند.
-Q (آرام) گزارش خطا را در stderr غیرفعال می کند، بنابراین لازم نیست "2> /dev/null" را بپاشید.
در سراسر فیلمنامه شما
-V (by-value) مقدار عبوری را در پشته سابقه ویرایش فعال می کند. در موارد شدید با
هزاران ارزش عمیق تو در تو ممکن است منجر شود jshon چند برابر کندتر دویدن
در حالی که چندین برابر حافظه بیشتر استفاده می شود. با این حال ارزش جانبی ایمن تر از مرجع و
به طور کلی باعث تعجب کمتری می شود. توسط مرجع به طور پیش فرض فعال است زیرا وجود ندارد
در طول عملیات فقط خواندنی خطر می کند و به طور کلی ویرایش json را راحت تر می کند.
jshon -ec -n 7 -id -p -> c["d"] == 7
jshon -V -ec -n 7 -id -p -> c["d"] == 5
jshon -V -ec -n 7 -id -ic -> c["d"] == 7
با -V ، تغییرات باید بهجای ساده، بهصورت دستی از طریق پشته درج شوند
حذف مقادیر میانی
-C (ادامه) در مورد خطاهای بالقوه قابل بازیابی. به عنوان مثال، استخراج مقادیری که انجام نمی دهند
وجود به جای سقط کردن، "null" را به پشته ویرایش اضافه می کند. رفتار ممکن است در
آینده.
-I ویرایش فایل (درجا). به یک فایل برای اصلاح نیاز دارد و بنابراین فقط با -F کار می کند. این هست
برای ایجاد تغییرات جزئی در فایل json. هنگام استفاده، خروجی معمولی سرکوب می شود
و پایین پشته ویرایش نوشته می شود.
-0 (null delimiters) جداکننده -u را از خط جدید به null تغییر می دهد. این گزینه
فقط بر -u تأثیر می گذارد زیرا این تنها زمانی است که یک خط جدید به طور قانونی در آن ظاهر می شود
خروجی.
- نسخه
یک مهر زمانی YYYYMMDD برمیگرداند و خارج میشود.
OTHER ابزارها
jshon همیشه در هر خط یک فیلد خروجی می دهد. بسیاری از ابزارهای یونیکس انتظار دارند چندین تب جدا شوند
فیلدها در هر خط خروجی را از طریق «رب» برای رفع این مشکل لوله کنید. با این حال، رب نمی تواند
خطوط خالی را مدیریت کنید، بنابراین آنها را با نگهدارنده قرار دهید. به عنوان مثال:
jshon ... | sed 's/^$/-/' | paste -s -d '\t\t\n'
این جای خالی ها را با '-' می گیرد و هر سه خط را در یک ادغام می کند.
ابزارهای بیشتری وجود دارند که خروجی json را تولید می کنند. اغلب اینها از خط گرا استفاده می کنند
ترکیبی json/plaintext که در آن هر خط یک ساختار json مستقل است. متاسفانه این یعنی
خروجی به طور کلی json قانونی نیست. یا حلقه به خط داده ها را انجام دهید
(صدا زدن jshon یک بار برای هر خط) یا آن را به یک آرایه json قانونی تبدیل کنید. مثلا:
هنگام خواندن خط. انجام jshon <<< "$line"; انجام شد < (journalctl -o json)
journalctl -o json | sed -e '1i[' -e '$!s/$/,/' -e '$a]' | jshon
GOLF
اگر به خطهای بسیار کوتاه اهمیت میدهید، استدلالها میتوانند فشرده شوند، در صورتی که اینطور نباشد
باعث ابهام شود مثال از -ترکیدن) را می توان به صورت زیر گلف کرد:
jshon -ec -ed -u -p -ee -u == jshon -ec -ed -upee -u
من انجام این کار را توصیه نمی کنم (درک همه چیز را بسیار سخت تر می کند) اما برخی افراد
گلف با وجود عواقب
پدید آوردن JSON
jshon می تواند json را با ارسال یک شی خالی به عنوان ورودی ایجاد کند:
jshon -s one -ia <<< "{}"
AUTHORS
jshon توسط کایل کین نوشته شده است[ایمیل محافظت شده]> با وصله های دیو رایسنر
<[ایمیل محافظت شده]>، AndrewF (BSD، OSX، jsonp، مرتب سازی)، و Jean-Marc A (solaris).
با استفاده از خدمات onworks.net از jshon آنلاین استفاده کنید