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  in-
     dicate 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>

				   07/30/2026			     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+15.1.quarterly>

home | help