JOSE-FMT(1)   JOSE-FMT(1)

jose-fmt - تبدیل ساختار JSON میان قالب‌های مختلف سریال‌سازی

jose fmt [OPTIONS]

دستور jose fmt سازوکاری برای ساخت و تجزیه اشیاء JSON از طریق خط فرمان فراهم می‌کند. این دستور به‌صورت یک ماشین پشته‌ای ساده عمل می‌کند. تمام دستورات روی بالاترین عنصر پشته (عنصر TOP) و گهگاه روی عنصر قبلی پشته (عنصر PREV) اثر می‌گذارند. دستوراتی که به نوع داده خاصی نیاز دارند، آن را درون پرانتز مشخص می‌کنند؛ برای مثال: «TOP (arr.)».

این برنامه در صورت موفقیت مقدار 0 و در صورت بروز خطا، شماره اندیس گزینه‌ای را که ناموفق بوده برمی‌گرداند.

•-0, --null : اطمینان از تهی (null) بودن عنصر TOP
•-a, --append : افزودن عنصر TOP به انتهای آرایه PREV (arr.)
•-a, --append : تنظیم مقادیر ناموجود از شیء TOP (obj.) در شیء PREV (obj.)
•-A, --array : اطمینان از آرایه بودن عنصر TOP
•-B, --boolean : اطمینان از بولی (boolean) بودن عنصر TOP
•-c, --copy : ایجاد یک کپی عمیق (deep copy) از عنصر TOP و قرار دادن آن در بالای پشته (TOP)
•-d NAME, --delete=NAME : حذف کلید NAME از شیء TOP (obj.)
•-d , --delete= : حذف عنصر # از آرایه TOP (arr.)
•-d -, --delete=- : حذف عنصر # از انتهای آرایه TOP (arr.)
•-e, --empty : پاک کردن تمام عناصر از شیء یا آرایه TOP (arr./obj.)
•-E, --equal : اطمینان از برابر بودن عنصر TOP با PREV
•-f FILE, --foreach=FILE : نوشتن شیء یا آرایه TOP (obj./arr.) در FILE، هر عنصر در یک سطر
•-f -, --foreach=- : نوشتن شیء یا آرایه TOP (obj./arr.) در خروجی استاندارد (STDOUT)، هر عنصر در یک سطر
•-F, --false : اطمینان از نادرست (false) بودن عنصر TOP
•-g NAME, --get=NAME : دریافت عنصر با کلید NAME از شیء TOP (obj.) و قرار دادن آن در TOP
•-g , --get= : دریافت عنصر # از آرایه TOP (arr.) و قرار دادن آن در TOP
•-g -, --get=- : دریافت عنصر # از انتهای آرایه TOP (arr.) و قرار دادن آن در TOP
•-i , --insert= : درج عنصر TOP در اندیس # از آرایه PREV (arr.)
•-I, --integer : اطمینان از عدد صحیح (integer) بودن عنصر TOP
•-j JSON, --json=JSON : تجزیه مقدار ثابت JSON و قرار دادن آن در TOP
•-j FILE, --json=FILE : خواندن JSON از FILE و قرار دادن آن در TOP
•-j -, --json=- : خواندن JSON از ورودی استاندارد (STDIN) و قرار دادن آن در TOP
•-l, --length : قرار دادن طول عنصر TOP (اعم از آرایه، رشته یا شیء) در TOP
•-M , --move= : انتقال عنصر TOP به تعداد # جایگاه به عقب در پشته
•-N, --number : اطمینان از عدد (number) بودن عنصر TOP
•-o FILE, --output=FILE : نوشتن عنصر TOP در FILE
•-o -, --output=- : نوشتن عنصر TOP در خروجی استاندارد (STDOUT)
•-O, --object : اطمینان از شیء (object) بودن عنصر TOP
•-q STR, --quote=STR : تبدیل رشته STR به یک مقدار رشته‌ای JSON و قرار دادن آن در TOP
•-Q, --query : پرس‌وجو از پشته از طریق تهیه کپی عمیق و قرار دادن آن در TOP
•-R, --real : اطمینان از عدد حقیقی (real) بودن عنصر TOP
•-s NAME, --set=NAME : قرار دادن مقدار TOP درون شیء PREV (obj.) با نام کلید NAME
•-s , --set= : قرار دادن مقدار TOP درون شیء PREV (obj.) در اندیس #
•-s -, --set=- : قرار دادن مقدار TOP درون شیء PREV (obj.) در اندیس # از انتها
•-S, --string : اطمینان از رشته (string) بودن عنصر TOP
•-t , --truncate= : کاهش اندازه آرایه TOP (arr.) به طول #
•-t -, --truncate=- : دور انداختن # عنصر پایانی از آرایه TOP (arr.)
•-T, --true : اطمینان از درست (true) بودن عنصر TOP
•-u FILE, --unquote=FILE : نوشتن رشته TOP (str.) در FILE بدون علامت‌های نقل‌قول (گیومه)
•-u -, --unquote=- : نوشتن رشته TOP (str.) در خروجی استاندارد (STDOUT) بدون علامت‌های نقل‌قول (گیومه)
•-U, --unwind : حذف عنصر TOP از پشته
•-x, --extend : افزودن عناصر TOP به انتهای آرایه PREV (arr.)
•-x, --extend : تنظیم تمامی مقادیر شیء TOP (obj.) درون شیء PREV (obj.)
•-X, --not : معکوس کردن بررسی شرط (assertion) بعدی
•-y, --b64load : رمزگشایی رشته TOP (str.) با الگوریتم Base64 سازگار با URL و قرار دادن آن در TOP
•-Y, --b64dump : کدگذاری عنصر TOP با الگوریتم Base64 سازگار با URL و قرار دادن آن در TOP

استخراج پارامتر alg از سرآیند محافظت‌شده یک JWE:

$ jose fmt -j "$jwe" -Og protected -yOg alg -Su-
A128KW

فهرست کردن تمام کلیدهای JWK در یک مجموعه کلید JWKSet (هر مورد در یک سطر):

$ echo "$jwkset" | jose fmt -j- -Og keys -Af-
{"kty":"oct",...}
{"kty":"EC",...}

تغییر الگوریتم در یک کلید JWK:

$ echo "$jwk" | jose fmt -j- -j '"A128GCM"' -s alg -Uo-
{"kty":"oct","alg":"A128GCM",...}

ساخت یک قالب JWE:

$ jose fmt -j '{}' -cs unprotected -q A128KW -s alg -UUo-
{"unprotected":{"alg":"A128KW"}}

Nathaniel McCallum <npmccallum@redhat.com>

06/09/2026