Help us shape the future of Go! Take the 2026 Go Developer Survey

encoding

package
v0.9.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 17, 2026 License: MIT Imports: 9 Imported by: 0

Documentation

Overview

Package encoding 提供常用的编码和哈希工具函数。

当前能力:JSON 编解码包装(MarshalJSON/UnmarshalJSON 等,UseNumber 语义 有显式入口 UnmarshalUseNumber/UnmarshalFromStringUseNumber——数字保留为 json.Number,防 >2^53 float 精度丢失)、非加密哈希 (Fnv1a64)、加密级摘要(Sha256/Sha256Hex)、Base64(标准/URL 安全)。

历史说明:曾提供 Md5/Md5Hex/Md5Bytes/Sha1 弱哈希包装,2026-09-15 治理轮 移除(共享 SDK 提供弱哈希入口容易被误用到凭据/签名场景);确有 MD5/SHA-1 合规需求的业务自行使用 crypto 标准库。

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Base64Decode

func Base64Decode(s string) (string, error)

Base64Decode 解码 Base64 编码的字符串。

func Base64Encode

func Base64Encode(s string) string

Base64Encode 返回字符串的 Base64 编码。

func Base64URLDecode

func Base64URLDecode(s string) (string, error)

Base64URLDecode 解码 Base64 URL 安全编码的字符串。

func Base64URLEncode

func Base64URLEncode(s string) string

Base64URLEncode 返回字符串的 Base64 URL 安全编码。

func Fnv1a64

func Fnv1a64(data []byte) uint64

Fnv1a64 返回数据的 64 位 FNV-1a 哈希值(非加密哈希,用于缓存分片/内容粗校验)。 跨服务持久化过哈希值的场景请勿更改算法假设(历史名 Hash,2026-09 改为如实命名)。

func Marshal

func Marshal(v any) ([]byte, error)

Marshal 将 v 序列化为 JSON 字节。

func MarshalIndent

func MarshalIndent(v any, prefix, indent string) ([]byte, error)

MarshalIndent 将 v 序列化为带缩进的 JSON 字节。

func MarshalToString

func MarshalToString(v any) (string, error)

MarshalToString 将 v 序列化为 JSON 字符串。

func Sha256

func Sha256(str string) string

Sha256 返回字符串的 SHA-256 十六进制字符串。

func Sha256Hex

func Sha256Hex(data []byte) string

Sha256Hex 返回数据的 SHA-256 十六进制字符串。 适用于内容校验和、缓存键等非加密签名场景(2026-09-15 治理轮: 移除 Md5/Md5Hex/Md5Bytes/Sha1 包装——共享 SDK 提供弱哈希入口容易被 误用到凭据/签名场景;确有 MD5/SHA-1 合规需求的业务自行引 crypto 标准库)。

func Unmarshal

func Unmarshal(data []byte, v any) error

Unmarshal 将 JSON 字节反序列化到 v。 使用 UseNumber 模式解析数字,避免精度丢失。 与 encoding/json.Unmarshal 语义一致:整个输入必须是单一 JSON 值, 尾部残留数据(截断修复失败/拼接脏数据)视为错误而非静默忽略。

func UnmarshalFromReader

func UnmarshalFromReader(reader io.Reader, v any) error

UnmarshalFromReader 从 Reader 读取 JSON 并反序列化到 v。

func UnmarshalFromString

func UnmarshalFromString(str string, v any) error

UnmarshalFromString 将 JSON 字符串反序列化到 v。 语义同 Unmarshal:尾部残留数据视为错误。

func UnmarshalFromStringUseNumber added in v0.3.0

func UnmarshalFromStringUseNumber(s string, v any) error

UnmarshalFromStringUseNumber 将 JSON 字符串反序列化到 v。 语义同 UnmarshalUseNumber:数字保留为 json.Number,防 >2^53 精度丢失。

func UnmarshalUseNumber added in v0.3.0

func UnmarshalUseNumber(b []byte, v any) error

UnmarshalUseNumber 将 JSON 字节反序列化到 v,数字显式解析为 json.Number (而非 float64)。js 数值只有 53 位整数精度,金额/雪花 ID 等 >2^53 的整数 经 float64 中转会静默丢失精度;json.Number 保留原文字面量,由业务按需 转 int64/string。目标字段为 any 时生效最明显;已声明类型的字段仍按 该类型解析。尾部残留数据视为错误(同 Unmarshal)。

func Valid

func Valid(data []byte) bool

Valid 检查 data 是否是合法的 JSON。

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL