This commit is contained in:
2026-07-08 21:28:08 +08:00
parent 352ee9eaf2
commit 9f985ea8c7
12 changed files with 2504 additions and 39 deletions

View File

@@ -0,0 +1,45 @@
package dwbg
// stripNullValues 递归移除 map/slice 中的 nil避免 JSON 输出 null。
func stripNullValues(v interface{}) interface{} {
switch val := v.(type) {
case map[string]interface{}:
out := make(map[string]interface{}, len(val))
for k, item := range val {
if item == nil {
continue
}
out[k] = stripNullValues(item)
}
return out
case []interface{}:
out := make([]interface{}, 0, len(val))
for _, item := range val {
if item == nil {
continue
}
out = append(out, stripNullValues(item))
}
return out
default:
return v
}
}
func reportContainsNull(v interface{}) bool {
switch val := v.(type) {
case map[string]interface{}:
for _, item := range val {
if item == nil || reportContainsNull(item) {
return true
}
}
case []interface{}:
for _, item := range val {
if item == nil || reportContainsNull(item) {
return true
}
}
}
return false
}