gojo
Yet another Go implementation of jo.
Usage
$ gojo foo=bar qux=quux
{"foo":"bar","qux":"quux"}
$ gojo -p foo=bar qux=quux
{
"foo": "bar",
"qux": "quux"
}
$ gojo -a foo bar baz
["foo","bar","baz"]
$ seq 10 | gojo -a
[1,2,3,4,5,6,7,8,9,10]
$ gojo -p foo=$(gojo bar=$(gojo baz=100))
{
"foo": {
"bar": {
"baz": 100
}
}
}
$ gojo -p foo[bar][baz][qux][quux]=128
{
"foo": {
"bar": {
"baz": {
"qux": {
"quux": 128
}
}
}
}
}
$ gojo -p res[foo][][id]=10 res[foo][][id]=20 res[cnt]=2
{
"res": {
"foo": [
{
"id": 10
},
{
"id": 20
}
],
"cnt": 2
}
}
$ gojo foo=@Makefile # read contents from file
{"foo":"BIN := gojo\nCURRENT_REVISION := $(shell git rev-parse --short HEAD)\nBUILD_LDFLAGS := \"-X ..."}
$ gojo foo=%Makefile # base64 of file contents
{"foo":"QklOIDo9IGdvam8KQ1VSUkVOVF9SRVZJU0lPTiA6PSAkKHNoZWxsIGdpdCByZXYtcGFyc2UgLS1zaG9ydCBIRUFEKQp ..."}
Installation
Homebrew
brew install itchyny/tap/gojo
Build from source
go get -u github.com/itchyny/gojo/cmd/gojo
Difference to jo
- Implemented in Go and Go-gettable
- Drops support of
k@v
syntax (usek=true
ork=false
) - Does not print duplicate keys (although duplicate key in JSON is valid but it's not that useful and overwritten by the latter)
- Reading file contents is not implemented yet
Bug Tracker
Report bug at Issues・itchyny/gojo - GitHub.
Author
itchyny (https://github.com/itchyny)
License
This software is released under the MIT License, see LICENSE.