1 个不稳定版本
0.1.0 | 2024年4月30日 |
---|
#22 在 #dictionary
26KB
607 行
cout2json
Cout2json是一个工具,可以从cout输出生成JSON结构。在程序中,您可以通过在终端中打印键值来构建JSON对象。
示例
printf ";key:value" | cout2json # give {"key":"value"}
printf ";key1:value1\n;key2:value2" | cout2json # give {"key1":"value1","key2":"value2"}
printf ";a.b.c:value" | cout2json # give {"a":{"b":{"c":"value"}}}
输出可以被重定向到工具如jq以进一步处理。
printf ";key1.b:1\n;key2.d:2" | cout2json | jq ".key2" -c # give {"d":2}
用例
- 使用最少的代码修改对库进行监控,主要依赖于打印到cout。
- 由于JSON结构是在程序外部构建的,因此可以在整个代码中使用字典键。Cout2json负责生成一个统一的结构。
- 适用于能够串行打印的微控制器。消除了在微控制器内管理JSON结构的必要性。
安装
cargo install cout2json
功能
当键由点分隔时,自动构建嵌套结构。
printf ";key1.key2:1" | cout2json # give {"key1":{"key2":1}}
printf ";key1.key2.key3:1" | cout2json # give {"key1":{"key2":{"key3":1}}}
printf ";key1.key2:1\n;key1.key3:2" | cout2json # give {"key1":{"key2":1,"key3":2}}
自动将值解释为整数、浮点数或字符串。
printf ";key:1" | cout2json # give {"key":1}
printf ";key:1.0" | cout2json # give {"key":1.0}
printf ";key:a" | cout2json # give {"key":"a"}
当相同的键重复时,自动构建数组。
printf ";key:1\n;key:2" | cout2json # give {"key":[1,2]}
printf ";key.a:1\n;key.b:2" | cout2json # give {"key":{"a":1,"b":2}}
依赖项
~1.6–2.7MB
~52K SLoC