app rjo

A small utility to create JSON objects

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

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–15MB
~164K SLoC