diff --git a/types/mapper/annotation_field.go b/types/mapper/annotation_field.go index 4ff8852d..821621a3 100644 --- a/types/mapper/annotation_field.go +++ b/types/mapper/annotation_field.go @@ -11,6 +11,7 @@ import ( type AnnotationField struct { Field string Object bool + List bool IgnoreDefinition bool } @@ -24,6 +25,12 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) { v = data } } + if e.List { + var data []interface{} + if err := json.Unmarshal([]byte(convert.ToString(v)), &data); err == nil { + v = data + } + } data[e.Field] = v } @@ -32,7 +39,7 @@ func (e AnnotationField) FromInternal(data map[string]interface{}) { func (e AnnotationField) ToInternal(data map[string]interface{}) { v, ok := data[e.Field] if ok { - if e.Object { + if e.Object || e.List { if bytes, err := json.Marshal(v); err == nil { v = string(bytes) }