go.mondoo.com/cnquery@v0.0.0-20231005093811-59568235f6ea/providers-sdk/v1/util/convert/dict.go (about) 1 // Copyright (c) Mondoo, Inc. 2 // SPDX-License-Identifier: BUSL-1.1 3 4 package convert 5 6 import "encoding/json" 7 8 // TODO: These functions are very heavyweight and prime candidates to 9 // be replaced by better alternatives. 10 11 // JsonToDict converts a raw golang object (typically loaded from JSON) 12 // into a `dict` type 13 func JsonToDict(v interface{}) (map[string]interface{}, error) { 14 res := make(map[string]interface{}) 15 16 data, err := json.Marshal(v) 17 if err != nil { 18 return nil, err 19 } 20 err = json.Unmarshal([]byte(data), &res) 21 if err != nil { 22 return nil, err 23 } 24 return res, nil 25 } 26 27 // JsonToDictSlice converts a raw golang object (typically loaded from JSON) 28 // into an array of `dict` types 29 func JsonToDictSlice(v interface{}) ([]interface{}, error) { 30 res := []interface{}{} 31 32 data, err := json.Marshal(v) 33 if err != nil { 34 return nil, err 35 } 36 err = json.Unmarshal([]byte(data), &res) 37 if err != nil { 38 return nil, err 39 } 40 return res, nil 41 }