#serde-json #json #serialization #serde

serde_json_pretty

一个更漂亮的serde_json打印器

1 个不稳定版本

0.1.0 2024年4月12日

#2058 in 编码

MIT/Apache

11KB
187 代码行

serde_json_pretty

crates.io docs.rs

serde_json 很棒,但是输出格式的表现... 不太理想。您可以选择完全没有空格(适用于交换,但不可读),或者每个元素之间都有空格和换行(适用于交换,但几乎不可读)。

这个crate提供了一个折中方案:整体结构按照 PrettyFormatter 格式化,但由原始值组成的列表和对象格式化在一行中(但仍然不像 CompactFormatter 那样密集)。结果看起来像这样

{
 "INFO": {
   "name": "tremble_r1",
   "transform": [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.14999999, -0.099999994, -0.03, 1.0 ],
   "flags": [ 1074823168, 1081459343, 0 ]
 },
 "RTY2": { "material_variant": 0 },
 "LIG3": {
   "a": [ 1.0, 1.0, 1.0, 1.0 ],
   "b": 224,
   "c": 1.0,
   "d": [ 0.0, 45.0, 0.0, 0.0 ]
 },
 "INFZ": { "a": 11751, "b": 16629, "c": 11393, "d": 32769 },
 "JNTV": {
   "a": [ 0.0, 0.0, 0.0 ],
   "b": 2
 },
 "KAN7": "tremble_r1.KAN7",
 "PLU3": "tremble_r1.PLU3",
 "BBOX": {
   "min": [ -1.0, -1.0, 0.0 ],
   "max": [ 1.0, 1.0, 2.0 ],
   "radius": 0.0
 }
}

空间节省根据数据而异,但一些测试实现了大约70%的行数减少。

依赖

~0.5–1MB
~20K SLoC