-
Notifications
You must be signed in to change notification settings - Fork 0
xjson
omeyang edited this page Sep 17, 2026
·
1 revision
稳定性:Stable · 覆盖率:100.0% · 源码:
pkg/util/xjson
JSON 格式化工具。重点是 PrettyE —— 用 defer/recover 拦截 MarshalJSON 内的 panic 转为错误。
- 美化 JSON 输出(缩进、换行)
- 防御自定义
MarshalJSONpanic 污染调用方
import "github.com/omeyang/xkit/pkg/util/xjson"
s, err := xjson.PrettyE(obj)
if err != nil {
// 标准 marshal 错误,或 MarshalJSON panic 转化的 ErrMarshal
}
fmt.Println(s)| 名称 | 说明 |
|---|---|
PrettyE(v any) (string, error) |
美化 + panic recover |
Pretty(v any) string |
不报错版(panic → 空串) |
ErrMarshal |
panic 转化的错误(含 %w 保留底层 error 链) |
-
PrettyEdefer/recover:拦截MarshalJSON自定义实现的 panic -
%w保留 panic error 链:若 recover 的值实现error接口,用%w包装 - Fuzz 测试:覆盖空字符串、base64 等边界
- 概念:
- API:api.md#pkgutilxjson