#convert-json #json #yaml #json-xml #json-format #xml-data #xml

bin+lib convert2json

用于将 CSV、INI、RSV、TOML、XML 和 YAML 转换为 JSON 的 CLI 工具,以及用于与 jaq 或 jq 一起使用的工具

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 编码

Download history 149/week @ 2024-05-01 55/week @ 2024-05-08 48/week @ 2024-05-15 7/week @ 2024-05-22 2/week @ 2024-05-29 3/week @ 2024-06-05 139/week @ 2024-06-12 31/week @ 2024-06-19 4/week @ 2024-06-26 127/week @ 2024-07-03 100/week @ 2024-07-10 44/week @ 2024-07-17 81/week @ 2024-07-24 199/week @ 2024-07-31 133/week @ 2024-08-07 175/week @ 2024-08-14

每月 592 次下载

MIT 许可证

37KB
596

convert2json

用于命令行的工具,用于将 CSV、INI、RSV、TOML、XML 和 YAML 转换为 JSON。对于每个支持的格式,都有一个用于管道的工具以及一个包装器,该包装器将转换后的输入或文件作为参数传递给 jaq 或 jq,以进行进一步的查询和处理。

概览

目标

  • 提供轻量级的 JSON 转换器
  • 提供 jaq 和 jq 包装器
  • 添加对具有维护的 Serde 实现的额外格式的支持

非目标

  • 将 JSON 转换为其他数据格式,请考虑 jyt
  • 复制 jq、jaq 或 jq,必须安装 jq 包装器才能使用

使用示例

# 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

替代方案

安装

提供了 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