jsoncols provides scripting flexibility for data extraction from JSON data returning the results in columns. This is helpful in flattening content extracted from JSON blobs. The default delimiter for each value extracted is a comma. This can be overridden with an option.
-csv output as CSV or other flat delimiter row
-d set the delimiter for multi-field csv output
-dimiter set the delimiter for multi-field csv output
-h display help
-help display help
-i input filename
-input input filename
-l display license
-license display license
-m display output in monochrome
-o output filename
-output output filename
-permissive suppress error messages
-quiet suppress error messages
-quote if dilimiter is found in column value add quotes for non-CSV output
-r run interactively
-repl run interactively
-v display version
-version display version
If myblob.json contained
{"name": "Doe, Jane", "email":"jane.doe@example.org", "age": 42}
Getting just the name could be done with
jsoncols -i myblob.json .name
This would yeild
"Doe, Jane"
Flipping .name and .age into pipe delimited columns is as easy as listing each field in the expression inside a space delimited string.
jsoncols -i myblob.json -d\| .name .age
This would yeild
"Doe, Jane"|42
You can also pipe JSON data in.
cat myblob.json | jsoncols .name .email .age
Would yield
"Doe, Jane",jane.doe@xample.org,42
jsoncols v0.0.15