38 个版本 (3 个稳定版)
新功能 1.0.2 | 2024 年 8 月 17 日 |
---|---|
0.9.3 | 2024 年 8 月 3 日 |
0.9.2 | 2024 年 7 月 16 日 |
0.8.2 | 2024 年 3 月 30 日 |
0.4.4 | 2023 年 7 月 31 日 |
#427 in 编码
每月 592 次下载
37KB
596 行
convert2json
用于命令行的工具,用于将 CSV、INI、RSV、TOML、XML 和 YAML 转换为 JSON。对于每个支持的格式,都有一个用于管道的工具以及一个包装器,该包装器将转换后的输入或文件作为参数传递给 jaq 或 jq,以进行进一步的查询和处理。
概览
目标
- 提供轻量级的 JSON 转换器
- 提供 jaq 和 jq 包装器
- 添加对具有维护的 Serde 实现的额外格式的支持
非目标
使用示例
# convert yaml to json
$ echo foo: bar | yaml2json
{"foo":"bar"}
# query a value from a toml file
$ tq -r .package.description Cargo.toml
CLI utilities to convert CSV, INI, RSV, TOML, XML & YAML into JSON and for use with jaq or jq.
# query for environment variables that contain the current users username, using ini parser
$ printenv | iq --compact-output '.USER as $user | with_entries(select(.value | contains($user))) | keys'
["HOME","LOGNAME","OLDPWD","PWD","USER","USERNAME"]
# csv2json & cq recognize 4 additional arguments
$ csv2json --help
Usage: csv2json [-d <delimiter>] [-q <quote>] [-E <escape>] [--no-trim] [files...]
Reads CSV from files or standard input and converts this to JSON, emitted on standard output. Any errors are reported to standard error and result in a non-zero exit code.
Options:
-d, --delimiter field delimiter to use when parsing CSV, defaults to: ,
(comma)
-q, --quote quote character to use when parsing CSV, defaults to: "
(double quote)
-E, --escape escape character to use when parsing CSV, to escape quote
characters within a field. By default, quotes get escaped by
doubling them.
--no-trim do not trim headers & fields. By default, both get trimmed
of starting or trailing whitespace characters.
-h, --help display usage information
替代方案
- Rust 🦀
- Go 🐹
- JavaScript 🌐
- Python 🐍
安装
提供了 Debian & Ubuntu、基于 RPM 的 Linux 发行版以及 Alpine Linux 的软件包(静态链接)。
对于 Ubuntu、MacOS(x86_64 & arm64 的通用二进制文件)和 Windows,提供了预构建(动态链接)的二进制文件的存档,用于手动安装。
您可以在 发行版 中找到这些软件包和存档。
如果您已安装 Rust 和 Cargo,您可以使用 cargo install convert2json
命令构建和更新这些工具。如果您只需要工具的子集,请参阅下面的功能矩阵。
功能矩阵
您可能不需要安装所有工具或只需要安装特定的一个。每个工具都可以单独选择或通过分组功能选择。如果没有选择功能,则安装所有工具。
所有可选功能的矩阵
to_json | jq | |
---|---|---|
csv | csv2json | cq |
ini | ini2json | iq |
rsv | rsv2json | rq |
toml | toml2json | tq |
xml | xml2json | xq |
yaml | yaml2json | yq |
示例
# 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
依赖项
~1.8–3.5MB
~57K SLoC