Golang的 Json string和Map互相转换

在存储的时候想把数据列表存储成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
}
发布了83 篇原创文章 · 获赞 18 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/lwc5411117/article/details/102855254