This is a wrapper over `jq` (https://stedolan.github.io/jq/) to provide some access to JSON using RETRO. ~~~ {{ :input swap '/tmp/r.json file:spew ; :command 'cat_/tmp/r.json_|_jq_'%s'_>/tmp/r.json2 s:format ; :process unix:system here '/tmp/r.json2 file:slurp ; :results '/tmp/r.json '/tmp/r.json2 &file:delete bi@ here ; ---reveal--- :jq (ss-s) input command process results ; }} ~~~ With this, I can begin to parse JSON and do things with it. Import a JSON test set (https://api.github.com/repos/stedolan/jq/commits?per_page=5) ~~~ 'JSON d:create here 'test.json file:slurp here s:length n:inc !Heap ~~~ Extract the commit messages using `jq`. ~~~ JSON '.[]_|_{message:_.commit.message}_|_flatten jq s:temp ~~~ This leaves output like: [ "Improve jv_is_integer()" ] [ "Dockerfile: Change base image to Debian Stable" ] I can tokenize this and filter out the [ ] pairs: ~~~ ASCII:LF s:tokenize [ fetch [ $[ eq? ] [ $] eq? ] bi or not ] a:filter ~~~ And then display the resulting lines: ~~~ [ s:put nl ] a:for-each ~~~