From 8aba067d05df3dddb5be22159f5a9fe228b78c3b Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Tue, 12 Jul 2022 09:35:43 +0200 Subject: [PATCH] settings: Convert JSON strings to the given type --- settings/diff.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/settings/diff.go b/settings/diff.go index f5535b58..67d59f38 100644 --- a/settings/diff.go +++ b/settings/diff.go @@ -110,6 +110,13 @@ func MergeSettings(current Settings, new map[string]interface{}) *Settings { } if v, ok := new[name]; ok { + if reflect.TypeOf(v) != reflect.ValueOf(¤t).Elem().FieldByName(field.Name).Type() { + nv := reflect.New(reflect.ValueOf(¤t).Elem().FieldByName(field.Name).Type()) + mv, _ := json.Marshal(v) + json.Unmarshal(mv, nv.Interface()) + v = nv.Elem().Interface() + } + reflect.ValueOf(¤t).Elem().FieldByName(field.Name).Set(reflect.ValueOf(v)) } }