From d1141c0e0952131e1f5ee0037f79e14d701d4da9 Mon Sep 17 00:00:00 2001 From: Xavier Lucas Date: Fri, 22 Feb 2019 17:14:08 +0100 Subject: [PATCH] Add support for JSON arrays --- cast_test.go | 2 ++ caste.go | 3 +++ 2 files changed, 5 insertions(+) diff --git a/cast_test.go b/cast_test.go index d9a1479..7f08eb1 100644 --- a/cast_test.go +++ b/cast_test.go @@ -1048,6 +1048,8 @@ func TestToStringSliceE(t *testing.T) { expect []string iserr bool }{ + {`["a", "b"]`, []string{"a", "b"}, false}, + {"a b", []string{"a", "b"}, false}, {[]string{"a", "b"}, []string{"a", "b"}, false}, {[]interface{}{1, 3}, []string{"1", "3"}, false}, {interface{}(1), []string{"1"}, false}, diff --git a/caste.go b/caste.go index a4859fb..64a7466 100644 --- a/caste.go +++ b/caste.go @@ -1130,6 +1130,9 @@ func ToStringSliceE(i interface{}) ([]string, error) { case []string: return v, nil case string: + if err := json.Unmarshal([]byte(v), &a); err == nil { + return a, nil + } return strings.Fields(v), nil case interface{}: str, err := ToStringE(v)