Caltech Library logo





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.


	-d	set the delimiter for multi-field output
	-h	display help
	-i	input filename
	-input	input filename
	-l	display license
	-m	display output in monochrome
	-o	output filename
	-output	output filename
	-r	run interactively
	-repl	run interactively
	-v	display version


If myblob.json contained

    {"name": "Doe, Jane", "email":"", "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",,42