以下内容转载自 https://blog.youkuaiyun.com/lwc5411117/article/details/102855254
在存储的时候想把数据列表存储成json string,但是在代码使用的时候又觉得用map更快更方便。这个时候就需要相互转换,下面是一个转换的例子。
// Test for json and map converting package main import ( "encoding/json" "fmt" ) func main() { jsonStr := `{"ip": "127.0.0.1", "device": "ABESSF0023"}` // test json string to map m, err := JsonToMap(jsonStr) if err != nil { fmt.Printf("Convert json to map failed with error: %+v\n", err) } fmt.Printf("Converted to map result: %+v\n", m) // test map to json string jsonRes, err := MapToJson(m) if err != nil { fmt.Printf("Convert json to map failed with error: %+v\n", err) } fmt.Printf("Convert to json string result: %+v\n", jsonRes) } // Convert json string to map func JsonToMap(jsonStr string) (map[string]string, error) { m := make(map[string]string) err := json.Unmarshal([]byte(jsonStr), &m) if err != nil { fmt.Printf("Unmarshal with error: %+v\n", err) return nil, err } for k, v := range m { fmt.Printf("%v: %v\n", k, v) } return m, nil } // Convert map json string func MapToJson(m map[string]string) (string, error) { jsonByte, err := json.Marshal(m) if err != nil { fmt.Printf("Marshal with error: %+v\n", err) return "", nil } return string(jsonByte), nil }