json

package
v1.1.28 Latest Latest
Warning

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

Go to latest
Published: Jan 21, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

JSON 统一的 jsoniter 配置实例 使用 ConfigCompatibleWithStandardLibrary 确保与标准库完全兼容 同时获得更高的性能(比标准库快 2-3 倍)

所有 jxt-core 组件都应该使用这个统一的配置,包括: - domain/event: DomainEvent 序列化 - eventbus: Envelope 序列化 - outbox: OutboxEvent 序列化 - 其他所有需要 JSON 序列化的组件

View Source
var JSONDefault = jsoniter.ConfigDefault

JSONDefault 默认 jsoniter 配置实例 使用 ConfigDefault 平衡性能和兼容性

JSONFast 高性能 jsoniter 配置实例 使用 ConfigFastest 获得最高性能,但可能在某些边缘情况下与标准库不完全兼容 适用于性能敏感的场景

Functions

func Marshal

func Marshal(v interface{}) ([]byte, error)

Marshal 序列化对象为 JSON 字节数组 兼容标准库 json.Marshal 接口

使用示例:

data, err := jxtjson.Marshal(obj)
if err != nil {
    return err
}

性能:

  • 比标准库 encoding/json 快约 2-3 倍
  • 完全兼容标准库 API

func MarshalFast

func MarshalFast(v interface{}) ([]byte, error)

MarshalFast 使用最高性能配置序列化对象 适用于性能敏感的场景

使用示例:

data, err := jxtjson.MarshalFast(obj)
if err != nil {
    return err
}

性能:

  • 比标准库 encoding/json 快约 5-10 倍
  • 可能在某些边缘情况下与标准库行为略有不同
  • 推荐用于性能敏感且数据格式可控的场景

func MarshalToString

func MarshalToString(v interface{}) (string, error)

MarshalToString 将对象序列化为 JSON 字符串 使用 jsoniter 的高性能 API,避免字节数组到字符串的转换

使用示例:

str, err := jxtjson.MarshalToString(obj)
if err != nil {
    return err
}

性能:

  • 比 string(json.Marshal(obj)) 更快
  • 避免了字节数组到字符串的内存拷贝

func Unmarshal

func Unmarshal(data []byte, v interface{}) error

Unmarshal 从 JSON 字节数组反序列化对象 兼容标准库 json.Unmarshal 接口

使用示例:

var obj MyStruct
err := jxtjson.Unmarshal(data, &obj)
if err != nil {
    return err
}

性能:

  • 比标准库 encoding/json 快约 2-3 倍
  • 完全兼容标准库 API

func UnmarshalFast

func UnmarshalFast(data []byte, v interface{}) error

UnmarshalFast 使用最高性能配置反序列化对象 适用于性能敏感的场景

使用示例:

var obj MyStruct
err := jxtjson.UnmarshalFast(data, &obj)
if err != nil {
    return err
}

性能:

  • 比标准库 encoding/json 快约 5-10 倍
  • 可能在某些边缘情况下与标准库行为略有不同
  • 推荐用于性能敏感且数据格式可控的场景

func UnmarshalFromString

func UnmarshalFromString(str string, v interface{}) error

UnmarshalFromString 从 JSON 字符串反序列化对象 使用 jsoniter 的高性能 API,避免字符串到字节数组的转换

使用示例:

var obj MyStruct
err := jxtjson.UnmarshalFromString(str, &obj)
if err != nil {
    return err
}

性能:

  • 比 json.Unmarshal([]byte(str), &obj) 更快
  • 避免了字符串到字节数组的内存拷贝

Types

type RawMessage

type RawMessage = jsoniter.RawMessage

RawMessage jsoniter 兼容的 RawMessage 类型 与标准库 json.RawMessage 完全兼容

使用示例:

type Message struct {
    Data jxtjson.RawMessage `json:"data"`
}

说明:

  • RawMessage 是 []byte 的别名
  • 在 JSON 序列化/反序列化时,RawMessage 会被保留为原始 JSON
  • 适用于延迟解析或透传 JSON 数据的场景

Jump to

Keyboard shortcuts

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