From 16783cf1d364fa9d1e62d0b4ecfd1f919a956da4 Mon Sep 17 00:00:00 2001 From: Darren Shepherd Date: Fri, 29 Dec 2017 15:10:20 -0700 Subject: [PATCH] Add support for list in annotation field --- types/mapper/annotation_field.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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) }