1 个不稳定版本
| 0.1.1 | 2023年3月30日 |
|---|
2391 在 解析器实现
1,186 每月下载量
10KB
178 行
rust-json-forensics
此crate提供了一个函数,该函数接受一个字节数组并
- 将无效的JSON标记
NaN和Infinity转换为0 - 将所有在
serde-json中会导致溢出的整数替换为0
这只是为了使JSON能够解析。所有操作都是在原地进行的。
这很有用,因为Python JSON库传统上会在遇到 NaN 和 Infinity 值时发出无效的JSON。如果您必须支持此类客户端,则可以使用此包装器来解析此类JSON文档。
lib.rs:
此crate实现了一个 Read 适配器,该适配器将无效的JSON标记 NaN 和 Infinity 转换为其他标记,而不在其他方面扭曲流。它通过将 NaN 和 Infinity 转换为 0.0 来实现这一点。
这很有用,因为Python JSON库传统上会在遇到 NaN 和 Infinity 值时发出无效的JSON。如果您必须支持此类客户端,则可以使用此包装器来解析此类JSON文档。
这只是使JSON能够解析的一种方式,并且 0 是一种可以以标准化的方式插入而不会改变任何位置值的值。
示例转换
以下JSON文档
{"nan":NaN,"inf":Infinity,"-inf":-Infinity}
因此转换为
{"nan":0 ,"inf":0 ,"-inf":-0 }
serde支持
如果启用了 serde 功能,则该crate提供了一些基本的包装器,用于围绕 serde_json 进行快速反序列化,并运行转换。
依赖关系
~0–265KB