A command line tool and Haskell library for transforming json values, for example:
input:
{ "school":"Bear Academy", "courses":[ { "id":2, "name":"Honey Stealing", "startDate":{ "day":"02", "month":"12", "year":"2017" }, "enrolled":12 }, { "id":2, "name":"Salmon Fishing", "startDate":{ "day":"27", "month":"01", "year":"2018" }, "enrolled":10 } ], "address":"The Forrest", "motto":"Ursus docere" }
transform:
{ "mySchool":"$(school)", "myName":"Paddington", "myCourses[$c <- $(courses)]":{ "name":"$c(name)", "startDate":"$c(startDate.year)-$c(startDate.month)-$c(startDate.day)", "enrolled":"$c(enrolled)" } }
output:
{ "mySchool":"Bear Academy", "myName":"Paddington", "myCourses":[ { "name":"Honey Stealing", "startDate":"2017-12-02", "enrolled":12 }, { "name":"Salmon Fishing", "startDate":"2018-01-27", "enrolled":10 } ] }
Usage: json-transform (-i|--input FILENAME) (-t|--transform FILENAME) Available options: -i,--input FILENAME a path to the input file or - to read from stdin -t,--transform FILENAME a path to the transform file or - to read from stdin
Just for fun