3.2 KiB
3.2 KiB
CHANGELOG
[v1.2.1] - 2026-05-04
Added
- Encoder 元数据缓存: 引入
encoderStructDescriptor缓存,大幅减少结构体序列化时的反射开销。 - time.Time 全局支持:
- Encoder/Decoder 原生支持
time.Time类型。 - 默认使用格式
2006-01-02 15:04:05.000。 - 支持通过 Struct Tag 指定格式(如
json:"format=2006-01-02")。
- Encoder/Decoder 原生支持
- 零分配摩擦匹配: 重构 Decoder 匹配逻辑,实现
normalizeEqual算法,在忽略大小写/下划线匹配时彻底消除内存分配。
Optimized
- Encoder 性能:
- 采用
MapRange代替MapKeys遍历 Map,减少中间切片分配。 - 延迟 Path 路径计算,仅在开启脱敏字典时计算路径。
- 重写
writeString,支持批量写入与高效查表转义。
- 采用
- Decoder 性能:
- 优化
decodeArray扩容策略,优先尊重并使用用户预设的 Capacity。
- 优化
- 移除 Map 排序: 序列化 Map 时不再进行 Key 排序,显著提升大规模 Map 的处理速度。
[v1.2.0] - 2026-05-04
Added
- 零摩擦 API: 核心 API
To[T],ToJSON,FromJSON,ToMap,ToSlice全部重构为不返回错误,遇错静默返回零值。 - As 包装器: 原
Quiet更名为As,用于一键消除传统(value, error)函数的摩擦。
Removed
- YAML 支持: 移除
gopkg.in/yaml.v3依赖。 - Must/As[T] 系列: 移除
Must及所有特殊的AsXxx系列函数,统一通过To[T]或As包装实现。 - 冗余 API: 移除
PrettyToJSONBytes和ToJSONDesensitize,保留对应的PrettyToJSON和ToJSONDesensitizeBytes。
[v1.1.2] - 2026-05-04
Added
- 新增
ToMap和ToSlice: 侧重于原地填充/追加,支持 Struct 继承拍平、KV 序列化与自动类型转换。 - 新增
MakeMap,MakeSlice,FromJSON,FromYAML系列: 泛型构建新对象的零摩擦 API。 - 增强
UnmarshalJSON/UnmarshalYAML: 重构为副作用模式(返回 error),支持多种输入类型。
Removed
- 移除
Ints和Strings: 由更通用的MakeSlice替代,保持 API 简洁。
[v1.1.1] - 2026-04-12
- 修复: 解决
FastEncoder在编码结构体时忽略匿名嵌入(Embedded)字段的问题,确保组合对象的完整序列化。
[v1.1.0] - 2026-05-02
- 功能: 新增
FastEncoder,实现单路径 JSON 编码,大幅提升性能并减少内存分配。 - 功能: 新增
ToJSONDesensitize和ToJSONDesensitizeBytes,支持原生字段脱敏。 - 功能: 新增
FastDecoder,实现单路径流式 JSON 解析,支持“零摩擦” Key 匹配(大小写不敏感、归一化映射)。 - 优化: 完善
null值处理逻辑,区分nil指针与空slice/map。 - 重构: 移除旧版
makeJSONType等冗余逻辑,代码结构更简洁高效。
[v1.0.4] - 2026-04-30
- 优化: 重构
UniqueAppend,改用 Map 查重,性能提升至 $O(n)$。 - 优化: 提升
If函数参数描述性,符合工程规范。 - 优化: 精简
parseInt/parseUint逻辑,减少冗余字符串扫描。 - 优化: 优化
FixUpperCase内部字符处理,引入位运算提升效率。