Skip to content

FxJSON高性能 Go JSON 解析库

专为现代 Go 应用设计的零分配、高性能 JSON 处理库。数组遍历快 67 倍,对象遍历快 20 倍。

为什么选择 FxJSON?

传统 JSON 处理的痛点

  • 标准库 encoding/json 性能不足,大量内存分配
  • 第三方库要么功能有限,要么学习成本高
  • 错误处理复杂,代码冗余

FxJSON 的解决方案

  • 零分配核心操作:关键路径无内存分配,GC 压力小
  • 智能缓存机制:重复访问自动优化,性能持续提升
  • 安全默认值StringOr() IntOr() 等方法优雅处理异常
  • 完整功能集:从基础解析到高级查询,一站式解决

快速体验

go
package main

import (
    "fmt"
    "github.com/icloudza/fxjson"
)

func main() {
    // 1. 解析 JSON(零分配)
    json := `{"user":{"name":"张三","age":25,"skills":["Go","JSON"]}}`
    node := fxjson.FromString(json)
    
    // 2. 安全访问(自动处理错误)
    name := node.GetPath("user.name").StringOr("未知")
    age := node.GetPath("user.age").IntOr(0)
    
    // 3. 高性能遍历(比标准库快67倍)
    node.GetPath("user.skills").ArrayForEach(func(i int, skill fxjson.Node) bool {
        fmt.Printf("技能 %d: %s\n", i+1, skill.StringOr(""))
        return true
    })
    
    fmt.Printf("%s 今年 %d\n", name, age)
}

性能对比一览

操作类型FxJSON标准库性能提升内存优势
数组遍历30ns2044ns67.5x0 vs 1984B
对象遍历104ns2115ns20.2x0 vs 1984B
字段访问25ns2012ns80.8x0 vs 1984B
缓存访问642ns5542ns8.6x20B vs 6448B

基准测试环境:Apple M4 Pro, Go 1.24

适用场景

  • API 服务:处理大量 JSON 请求响应
  • 配置文件解析:应用启动时的配置读取
  • 数据处理:ETL 流程中的 JSON 数据转换
  • 微服务通信:服务间 JSON 格式数据交换
  • 日志分析:结构化日志数据的解析处理

基于 MIT 许可证发布