9 releases

0.3.0 Jan 23, 2021
0.2.3 Dec 29, 2019
0.2.2 Jun 16, 2019
0.2.1 Apr 15, 2019
0.1.6 Apr 6, 2019

#2712 in Command line utilities

26 downloads per month

MIT license

16KB
299 lines

rjo

rjo Build Status Build status codecov

A small utility to create JSON objects.

The origin of this package is jpmens/jo, and was inspired by a Golang ported version , skanehira/gjo.

Installation

Only installation from souce is supported. You may need Rust 1.30 or higher. You can then use cargo to build everything.

$ cargo install rjo

or, clone and specify local directory:

$ git clone https://github.com/dskkato/rjo.git
$ cd rjo
$ cargo install --path .

Usage

Creating objects:

$ rjo -p name=jo n=17 parser=false
{
    "name": "jo",
    "n": 17,
    "parser": false
}

or, arrays:

$ seq 1 10 | rjo -a
[1,2,3,4,5,6,7,8,9,10]

$ rjo -p -a Rust 0 false
[
    "Rust",
    0,
    false
]

A more complex example:

$ rjo -p name=JP object=$(rjo fruit=Orange point=$(rjo x=10 y=20) number=17) sunday=false
{
    "name": "JP",
    "object": {
        "fruit": "Orange",
        "point": {
            "x": 10,
            "y": 20
        },
        "number": 17
    },
    "sunday": false
}

multiple lines from stdin

Currently, jo assumes one x=y pair per line when reads from stdin, and multiple x=y pairs generate following results:

echo -e "a=b c=d \n e=f g=h" | jo
{"a":"b c=d "," e":"f g=h"}

While, rjo translates stdin input line by line:

echo -e "a=b c=d \n e=f g=h" | rjo
{"a":"b","c":"d"}
{"e":"f","g":"h"}

See also

License

MIT

Dependencies

~6–14MB
~152K SLoC