🎯 新增功能
新增 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
感谢所有用户的支持!🚀