#serde-json #json #serde #embedded

无std ser-write-json

ser-write的JSON序列化器和方便的解序列化器

2个不稳定版本

0.2.0 2024年5月14日
0.1.0 2024年5月11日

#56无标准库

Download history 177/week @ 2024-05-07 205/week @ 2024-05-14 11/week @ 2024-05-21 3/week @ 2024-05-28

73 每月下载量

MIT/Apache

215KB
5K SLoC

ser-write-json

Crate Docs Build Status Coverage Status Minimum rustc version

本crate提供对no_std友好的JSON紧凑序列化器,使用serde作为序列化器,并使用SerWrite作为方便的解序列化器。

本crate的部分功能借鉴了serde-json-coreserde_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