JOSE-FMT(1)   JOSE-FMT(1) نام (NAME) jose-fmt - تبدیل ساختار JSON میان قالب‌های مختلف سریال‌سازی خلاصه دستور (SYNOPSIS) jose fmt [OPTIONS] نمای کلی (OVERVIEW) دستور jose fmt سازوکاری برای ساخت و تجزیه اشیاء JSON از طریق خط فرمان فراهم می‌کند. این دستور به‌صورت یک ماشین پشته‌ای ساده عمل می‌کند. تمام دستورات روی بالاترین عنصر پشته (عنصر TOP) و گهگاه روی عنصر قبلی پشته (عنصر PREV) اثر می‌گذارند. دستوراتی که به نوع داده خاصی نیاز دارند، آن را درون پرانتز مشخص می‌کنند؛ برای مثال: «TOP (arr.)». این برنامه در صورت موفقیت مقدار 0 و در صورت بروز خطا، شماره اندیس گزینه‌ای را که ناموفق بوده برمی‌گرداند. گزینه‌ها (OPTIONS) • -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 مثال‌ها (EXAMPLES) استخراج پارامتر 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"}} نویسنده (AUTHOR) Nathaniel McCallum   06/09/2026 JOSE-FMT(1)