refactor(common):优化JSON清理逻辑

- 使用gjson.DecodeToJson替代gjson.Unmarshal提高解析效率
- 添加StrNumber选项支持字符串数字处理
- 简化数据清理流程
- 移除不必要的中间变量声明
- 提升JSON解析的准确性和性能
main v1.0.18
gaoda 2025-11-12 10:58:30 +08:00
parent 59158d7309
commit aab78082ce
1 changed files with 4 additions and 5 deletions

View File

@ -8,15 +8,14 @@ import (
// CleanJSON 清理JSON字符串中的空值和0值字段 // CleanJSON 清理JSON字符串中的空值和0值字段
func CleanJSON(jsonStr string) ([]byte, error) { func CleanJSON(jsonStr string) ([]byte, error) {
var data interface{} // 解析为JSON
json, err := gjson.DecodeToJson(jsonStr, gjson.Options{StrNumber: true})
// 解析JSON字符串 if err != nil {
if err := gjson.Unmarshal([]byte(jsonStr), &data); err != nil {
return nil, err return nil, err
} }
// 递归清理数据 // 递归清理数据
cleaned := cleanData(data) cleaned := cleanData(json)
// 转换回JSON字符串 // 转换回JSON字符串
result, err := gjson.Marshal(cleaned) result, err := gjson.Marshal(cleaned)