2
0
mirror of https://github.com/bpkg/bpkg synced 2024-11-17 21:26:01 +00:00
bpkg/lib/json
2022-03-23 11:16:59 -07:00
..
test init 2014-05-22 15:52:58 -04:00
.gitignore init 2014-05-22 15:52:58 -04:00
all-tests.sh init 2014-05-22 15:52:58 -04:00
JSON.sh Fix all Shellcheck SC2086 violations. 2022-03-23 11:16:59 -07:00
LICENSE.APACHE2 init 2014-05-22 15:52:58 -04:00
LICENSE.MIT init 2014-05-22 15:52:58 -04:00
package.json init 2014-05-22 15:52:58 -04:00
README.md Changes various (text) files to *not* be executable 2018-02-02 11:16:54 -05:00

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. Combines 'Leaf only' and 'Prune empty' options.

-l

Leaf only. Only show leaf nodes, which stops data duplication.

-p

Prune empty. Exclude fields with empty values.

-h

Show help text.

Examples

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

Installation

install via npm or from AUR on archlinux

License

This software is available under the following licenses:

  • MIT
  • Apache 2