Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

a pipeable JSON parser written in Bash

tree: cfcfebcadf

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 test
Octocat-spinner-32 .gitignore Tokenizer changes:
Octocat-spinner-32 JSON.sh
Octocat-spinner-32 LICENSE.APACHE2 Added Apache License v2 and capitalized README
Octocat-spinner-32 LICENSE.MIT Added Apache License v2 and capitalized README
Octocat-spinner-32 README.md
Octocat-spinner-32 all-tests.sh Remove some bashisms from tests
Octocat-spinner-32 package.json
README.md

JSON.sh

yo, so it's a json parser written in bash

pipe json to it, and it traverses the json objects and prints out the path to the current object (as a JSON array) and then the object, without whitespace.

$ json_parse < package.json
["name"]    "JSON.sh"
["version"] "0.0.0"
["description"] ""
["homepage"]    "http://github.com/dominictarr/JSON.sh"
["repository","type"]   "git"
["repository","url"]    "https://github.com/dominictarr/JSON.sh.git"
["repository"]  {"type":"git","url":"https://github.com/dominictarr/JSON.sh.git"}
["bin","json_parse"]    "./JSON.sh"
["bin"] {"json_parse":"./JSON.sh"}
["dependencies"]    {}
#  ... etc

a more complex example:

curl registry.npmjs.org/express | ./JSON.sh | egrep '\["versions","[^"]*"\]'
... try it and see

Options

-b

Brief output. Exclude empty fields and duplicate data. This will improve performance for larger queries.

Examples

If you have any examples with JSON.sh, streaming twitter, github, or whatever! please issue a pull request and i will include them.

LICENSE

This software is available under the following licenses:

  • MIT
  • Apache 2
Something went wrong with that request. Please try again.