jose-fmt − Converts JSON between serialization formats
jose fmt [OPTIONS]
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.
• −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
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"}}
Nathaniel McCallum <[email protected] [1] >