@@ -402,12 +402,12 @@ func (b *BadgerDB) FindAll(prefix string, result interface{}) error {
402402
403403 // 设置 DDNSProfilesRaw 字段
404404 if ddnsRaw , exists := serverData ["DDNSProfilesRaw" ]; exists {
405- if ddnsStr , isStr := ddnsRaw .(string ); isStr {
405+ if ddnsStr , isStr := ddnsRaw .(string ); isStr && ddnsStr != "" {
406406 server .DDNSProfilesRaw = ddnsStr
407407 log .Printf ("BadgerDB FindAll: 服务器 %d (%s) 加载 DDNSProfilesRaw: %s" ,
408408 server .ID , server .Name , ddnsStr )
409409 // 同时解析到 DDNSProfiles 字段
410- if ddnsStr != "" && ddnsStr != " []" {
410+ if ddnsStr != "[]" {
411411 if err := utils .Json .Unmarshal ([]byte (ddnsStr ), & server .DDNSProfiles ); err != nil {
412412 log .Printf ("解析服务器 %d 的DDNSProfiles失败: %v" , server .ID , err )
413413 server .DDNSProfiles = []uint64 {}
@@ -417,12 +417,19 @@ func (b *BadgerDB) FindAll(prefix string, result interface{}) error {
417417 }
418418 } else {
419419 server .DDNSProfiles = []uint64 {}
420- log .Printf ("BadgerDB FindAll: 服务器 %d (%s) DDNSProfilesRaw 为空,设置为空数组" ,
421- server .ID , server .Name )
422420 }
421+ } else {
422+ // 处理 nil 或空字符串的情况
423+ server .DDNSProfilesRaw = "[]"
424+ server .DDNSProfiles = []uint64 {}
425+ log .Printf ("BadgerDB FindAll: 服务器 %d (%s) DDNSProfilesRaw 为 nil/空,设置为空数组" ,
426+ server .ID , server .Name )
423427 }
424428 } else {
425- log .Printf ("BadgerDB FindAll: 服务器 %d (%s) 没有找到 DDNSProfilesRaw 字段" ,
429+ // 字段不存在,设置默认值
430+ server .DDNSProfilesRaw = "[]"
431+ server .DDNSProfiles = []uint64 {}
432+ log .Printf ("BadgerDB FindAll: 服务器 %d (%s) 没有找到 DDNSProfilesRaw 字段,设置默认值" ,
426433 server .ID , server .Name )
427434 }
428435 }
0 commit comments