Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
JOSE-FMT(1)							   JOSE-FMT(1)

NAME
       jose-fmt	- Converts JSON	between	serialization formats

SYNOPSIS
       jose fmt	[OPTIONS]

OVERVIEW
       This jose fmt command provides a	mechanism for building and parsing
       JSON objects from the command line. It operates as a simple stack
       machine.	All commands operate on	the TOP	item of	the stack and,
       occasionally, the PREV item of the stack. Commands that require a
       specific	type of	value will indicate it in parentheses. For example:
       "TOP (arr.)".

       This program returns 0 on success or the	index of the option which
       failed.

OPTIONS
          -0, --null :	Assert TOP to be null

          -a, --append	: Append TOP to	the end	of PREV	(arr.)

          -a, --append	: Set missing values from TOP (obj.) into PREV (obj.)

          -A, --array : Assert	TOP to be an array

          -B, --boolean : Assert TOP to be a boolean

          -c, --copy :	Deep copy TOP, push onto TOP

          -d NAME, --delete=NAME : Delete NAME	from TOP (obj.)

          -d ,	--delete= : Delete # from TOP (arr.)

          -d -, --delete=- : Delete # from the	end of TOP (arr.)

          -e, --empty : Erase all items from TOP (arr./obj.)

          -E, --equal : Assert	TOP to be equal	to PREV

          -f FILE, --foreach=FILE : Write TOP (obj./arr.) to FILE, one
	   line/item

          -f -, --foreach=- : Write TOP (obj./arr.) to	STDOUT,	one line/item

          -F, --false : Assert	TOP to be false

          -g NAME, --get=NAME : Get item with NAME from TOP (obj.), push to
	   TOP

          -g ,	--get= : Get # item from TOP (arr.), push to TOP

          -g -, --get=- : Get # item from the end of TOP (arr.), push to TOP

          -i ,	--insert= : Insert TOP into PREV (arr.)	at #

          -I, --integer : Assert TOP to be an integer

          -j JSON, --json=JSON	: Parse	JSON constant, push onto TOP

          -j FILE, --json=FILE	: Read from FILE, push onto TOP

          -j -, --json=- : Read from STDIN, push onto TOP

          -l, --length	: Push length of TOP (arr./str./obj.) to TOP

          -M ,	--move=	: Move TOP back	# places on the	stack

          -N, --number	: Assert TOP to	be a number

          -o FILE, --output=FILE : Write TOP to FILE

          -o -, --output=- : Write TOP	to STDOUT

          -O, --object	: Assert TOP to	be an object

          -q STR, --quote=STR : Convert STR to	a string, push onto TOP

          -Q, --query : Query the stack by deep copying and pushing onto TOP

          -R, --real :	Assert TOP to be a real

          -s NAME, --set=NAME : Sets TOP into PREV (obj.) with	NAME

          -s ,	--set= : Sets TOP into PREV (obj.) at #

          -s -, --set=- : Sets	TOP into PREV (obj.) at	# from the end

          -S, --string	: Assert TOP to	be a string

          -t ,	--truncate= : Shrink TOP (arr.)	to length #

          -t -, --truncate=- :	Discard	last # items from TOP (arr.)

          -T, --true :	Assert TOP to be true

          -u FILE, --unquote=FILE : Write TOP (str.) to FILE without quotes

          -u -, --unquote=- : Write TOP (str.)	to STDOUT without quotes

          -U, --unwind	: Discard TOP from the stack

          -x, --extend	: Append items from TOP	to the end of PREV (arr.)

          -x, --extend	: Set all values from TOP (obj.) into PREV (obj.)

          -X, --not : Invert the following assertion

          -y, --b64load : URL-safe Base64 decode TOP (str.), push onto	TOP

          -Y, --b64dump : URL-safe Base64 encode TOP, push onto TOP

EXAMPLES
       Extract the alg parameter from a	JWE Protected Header:

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

       List all	JWKs in	a JWKSet (one per line):

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

       Change the algorithm in a JWK:

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

       Build a JWE template:

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

AUTHOR
       Nathaniel McCallum <npmccallum@redhat.com>

				  04/12/2025			   JOSE-FMT(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=jose-fmt&sektion=1&manpath=FreeBSD+Ports+14.3.quarterly>

home | help