refactor(common):优化JSON清理逻辑
- 使用gjson.DecodeToJson替代gjson.Unmarshal提高解析效率 - 添加StrNumber选项支持字符串数字处理 - 简化数据清理流程 - 移除不必要的中间变量声明 - 提升JSON解析的准确性和性能main v1.0.18
parent
59158d7309
commit
aab78082ce
|
|
@ -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)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue