#json #output #convert #cout #key #structures #dictionary

app cout2json

将cout输出转换为json

1 个不稳定版本

0.1.0 2024年4月30日

#22#dictionary

MIT/Apache

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