SuperAPI AI 工具集

serde-knowledge-patch

通用与其它

查看项目

更新于 10-16 01:35

技能介绍

用途:为使用 Serde 与 serde_json 的项目提供版本升级参考,整理 1.0.209 之后至 1.0.220-serde-core 期间的变化。

主要能力:

  1. 依赖选择:serde_core 1.0.220 仅含核心 trait(Serialize、Deserialize、Serializer、Deserializer 及 ser、de 模块),不提供 derive。仅在 crate 将 trait 用作约束或手写实现时直接依赖 serde_core(serde_core = "1.0.220");需要 derive 时继续用 serde = { version = "1.0.220", features = ["derive"] }。
  2. 诊断路径:错误中出现 T: serde_core::ser::Serialize 时按普通 Serde trait 处理,通过 derive serde::Serialize、启用 derive feature 修复,不需额外兼容开关。
  3. 版本下限:serde_json 1.0.145 要求 Serde 1.0.220 或更新。
  4. 枚举键:自 serde_json 1.0.150,Serde 表示为非字符串的枚举键在 JSON 对象序列化时被拒绝,应改用显式字符串键。
  5. 任意精度:1.0.149 中 arbitrary_precision 的数字拼写对齐 zmij 格式,数值等价但序列化文本可变,需复查快照、哈希、签名。
  6. Map 操作:自 1.0.131,拥有和借用的对象 Map 实现 Deserializer 与 IntoDeserializer,可直接反序列化,无需包装 Value::Object 或转回文本;1.0.143 起 Map<String, Value> 支持 .parse();1.0.142 起 &Value 实现 Default,缺失共享引用可默认 JSON null(不写入源对象);启用 raw_value 后可用 RawValue::NULL/TRUE/FALSE 静态字面量(1.0.134)。
  7. 排序:1.0.129 起 Map::sort_keys() 排序单个对象,Value::sort_all_objects() 递归排序;仅在启用 preserve_order 时必要。

使用方式:按升级清单操作——保留 serde 与 derive、trait-only 场景才用 serde_core、正确配对版本、枚举键转字符串、核查精确数字快照、优先直接 Map 反序列化、需要确定性输出时先排序。

限制:以上为公开资料整理的版本行为说明,未提供收费、平台或额外功能信息。