From 21a6575e9e3678130e43186bc0733bd481e42b3d Mon Sep 17 00:00:00 2001 From: AJ Date: Tue, 16 Oct 2018 08:00:23 +0100 Subject: [PATCH] let's convert left key to string ^^ problem #1 --- decode.go | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/decode.go b/decode.go index db35dc7..fd5b439 100644 --- a/decode.go +++ b/decode.go @@ -1,11 +1,27 @@ package main +import ( + "fmt" + "strconv" +) + func decode(input interface{}) interface{} { switch in := input.(type) { case map[interface{}]interface{}: rec := map[string]interface{}{} for k, v := range in { - rec[k.(string)] = decode(v) + + switch k.(type) { + case bool: + rec[strconv.FormatBool(k.(bool))] = decode(v) + case int: + rec[strconv.Itoa(k.(int))] = decode(v) + case float64: + rec[fmt.Sprintf("%f", k.(float64))] = decode(v) + case string: + rec[k.(string)] = decode(v) + } + } return rec case []interface{}: