Skip to content

🔥 FxJSON v1.0.8

Choose a tag to compare

@icloudza icloudza released this 14 Aug 11:56
· 29 commits to main since this release

🎯 新增功能

新增 FloatString() 方法

  • 🔢 数字精度保持: 新增 FloatString() 方法,完美解决浮点数格式化精度问题
  • ✨ 原始格式保持: 直接返回JSON中的原始数字字符串,避免 1.1 显示为 1.10 的问题
  • 🚀 零拷贝优化: 高性能实现,直接返回原始字符串,无额外内存分配

使用示例

jsonData := []byte(`{"price": 1.1, "rating": 4.50}`)
node := fxjson.FromBytes(jsonData)

// 保持原始JSON格式
price, _ := node.Get("price").FloatString()   // "1.1"
rating, _ := node.Get("rating").FloatString() // "4.50"

// 对比其他方法
floatVal, _ := node.Get("price").Float()      // 1.1 (float64)
numStr, _ := node.Get("price").NumStr()       // "1.1" (等价方法)

📝 文档更新

README 优化

- 📖 完善文档: 新增"数字精度处理"章节,详细说明各种数字处理方法
- 🎨 视觉优化: 添加 flame.png 图标到项目标题
- 📝 语言调整: 调整描述语言,更加谦逊务实
- 🌍 双语支持: 同步更新中英文版本文档

方法对比表

| 方法            | 用途    | 返回值      | 适用场景      |
|---------------|-------|----------|-----------|
| FloatString() | 显示格式  | 原始JSON格式 | 界面显示,保持精度 |
| NumStr()      | 原始字符串 | 数字字符串    | 需要原始格式时   |
| Float()       | 数值计算  | float64  | 数学运算      |
| Int()         | 整数处理  | int64    | 整数操作      |

🛠️ 技术改进

- 向后兼容: 不影响现有API,完全向后兼容
- 性能优化: 保持原有高性能特性,核心遍历操作零分配
- 内存安全: 继承原有的完整边界检查和安全机制
- Unicode支持: 继续完美支持中文、emoji等Unicode字符

📊 性能数据保持

- ForEach遍历: 20.2x 性能提升
- 数组遍历: 67.5x 性能提升
- 深度遍历: 2.0x 性能提升
- 零内存分配的核心操作

🎉 解决的问题

- ✅ 精度问题: 完美解决 "comments_count": 1.1 显示为 1.10 的问题
- ✅ 格式保持: JSON中 4.50 现在可以准确显示为 4.50 而不是 4.5
- ✅ 易于使用: 简单调用 FloatString() 即可解决所有浮点数显示问题

---
安装方式:
go get github.com/icloudza/fxjson@v1.0.8

感谢所有用户的支持!🚀