2个不稳定版本
0.2.0 | 2024年5月14日 |
---|---|
0.1.0 | 2024年5月11日 |
#56 在 无标准库
73 每月下载量
215KB
5K SLoC
ser-write-json
本crate提供对no_std
友好的JSON紧凑序列化器,使用serde作为序列化器,并使用SerWrite
作为方便的解序列化器。
本crate的部分功能借鉴了serde-json-core和serde_json的工作。
用法
[dependencies]
ser-write-json = { version = "0.1", default-features = false }
序列化器
本crate提供4种不同口味的JSON序列化器,取决于你如何处理使用serialize_bytes
方法序列化的类型。
to_writer
- 将字节序列化为数字数组,to_writer_hex_bytes
- 将字节序列化为HEX编码的字符串,to_writer_base64_bytes
- 将字节序列化为Base64编码的字符串,to_writer_pass_bytes
- 将字节传递给一个假设它们包含预序列化JSON片段的序列化器,to_writer_with_encoder
- 提供一个自定义编码器。
自定义字符串编码器可以采用ByteEncoder
trait实现。
功能
std
启用标准库,alloc
启用alloc库
以上功能启用后,将提供额外的字符串方法。
反序列化器
JSON反序列化器期望一个JSON编码的字节切片。 Deserialization
类型需要使用(ZERO-COPY)引用从提供的切片中获取数据。
JSON反序列化器提供了4种不同的版本,这取决于您希望如何处理使用deserialize_bytes
方法从JSON字符串反序列化的类型。
from_mut_slice
- 从常规JSON字符串解码字节,不检查它们是否是正确的UTF-8字符串。from_mut_slice_hex_bytes
- 每个字节预期包含两个十六进制ASCII字符。from_mut_slice_base64_bytes
- 预期Base64编码的字符串。from_mut_slice_with_decoder
- 可以提供自定义解码器。
反序列化器还可以从JSON数组(无论所选实现如何)就地反序列化字节。
反序列化器支持自描述的格式。
反序列化器可以从JSON对象和数组中反序列化结构体。
Rust版本要求
ser-write-json
需要Rustc版本1.75或更高。
依赖关系
约270-500KB
约11K SLoC