jose-fmt - Converts JSON between serialization formats

NAME  SYNOPSIS  OVERVIEW  OPTIONS  EXAMPLES  AUTHOR 

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 <[email protected] [1] >


Updated 2024-01-29 - jenkler.se | uex.se