convert2json
Utilities for use on the command line, to convert CSV, TOML, XML & YAML to JSON. For each supported format there is a tool for use in a pipe as well as a jq wrapper which passes the converted input or files in the arguments to jq, for further querying and processing.
Usage examples:
$ echo foo: bar | yaml2json
{"foo":"bar"}
$ tq -r .package.description Cargo.toml
CLI utilities to convert CSV, TOML, XML & YAML into JSON on standard output or into jq.
Overview
Goals:
- provide light-weight converters to JSON
- provide jq wrappers
- add support for additional formats having maintained Serde implementations
Non-Goals:
- converting JSON into other data formats, consider jyt
- replicating jq, jq must be installed to use the jq wrappers
Alternatives:
- Rust 🦀:
- Go 🐹
- JavaScript 🌐
- Python 🐍
To Do:
- in jq arguments, ignore filenames if preceeded by certain flags (i.e. --from-file)
Feature Matrix
You may not want to install all of the utilities or only a particular one. Each utility can be selected by itself or via group features. If no features are selected, all utilities get installed.
Matrix of all selectable features:
| to_json | jq | |
|---|---|---|
| csv | csv2json | cq |
| toml | toml2json | tq |
| xml | xml2json | xq |
| yaml | yaml2json | yq |
Examples:
# install only yq & tq:
cargo install convert2json --no-default-features --features yq,tq
# install all the xml related tools:
cargo install convert2json --no-default-features --features xml