Here is a little bit fancier version using simple GUI for displaying data.
true app:isgui !
"commits.json" f:slurp json> var, data
a:new var, items
var gui
{
"kind" : "win",
"buttons" : 5,
"title" : "JSON Challenge",
"wide" : 640,
"high" : 480,
"center" : true,
"children" :
[
{
"kind" : "table",
"name" : "table",
"bg" : "lightgreen",
"hl" : "lightgray",
"hlc" : "gray",
"bounds" : "10,10,parent.width-10, top+460",
"header" : [
{ "name" : "Name of committer", "width":160 },
{ "name" : "Date of commit", "width":160 },
{ "name" : "The SHA HASH for commit", "width":280 }
]
}
]
} var, gui-desc
: app:main
data @ ( nip "commit" m:@ "author" m:@ nip "name" m:@ swap "date" m:@ nip rot "sha" m:@ nip 3 a:close items @ swap a:push drop ) a:each drop
gui-desc @ "children" m:@ nip 0 a:@ nip "items" items @ m:! drop
gui-desc @ g:new gui ! ;