Add JsonPrint, StringMissing
This commit is contained in:
33
struct.go
33
struct.go
@@ -200,8 +200,39 @@ func MapToStruct(m map[string]any, o any) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func BsonAnyToMap(v any) any {
|
||||
switch v.(type) {
|
||||
case bson.D:
|
||||
m := map[string]any{}
|
||||
val := v.(bson.D)
|
||||
for _, elem := range val {
|
||||
m[elem.Key] = BsonAnyToMap(elem.Value)
|
||||
}
|
||||
return m
|
||||
|
||||
case bson.M:
|
||||
m := map[string]any{}
|
||||
val := v.(bson.M)
|
||||
for k, v2 := range val {
|
||||
m[k] = BsonAnyToMap(v2)
|
||||
}
|
||||
return m
|
||||
|
||||
case bson.A:
|
||||
val := v.(bson.A)
|
||||
arr := make([]any, len(val))
|
||||
for i, v2 := range val {
|
||||
arr[i] = BsonAnyToMap(v2)
|
||||
}
|
||||
return arr
|
||||
|
||||
default:
|
||||
return v
|
||||
}
|
||||
}
|
||||
|
||||
func BsonToMap(b bson.M) map[string]any {
|
||||
result := make(map[string]any)
|
||||
result := map[string]any{}
|
||||
|
||||
for k, v := range b {
|
||||
switch val := v.(type) {
|
||||
|
||||
Reference in New Issue
Block a user