Go struct和map转化为JSON串
Posted liuhmmjj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Go struct和map转化为JSON串相关的知识,希望对你有一定的参考价值。
struct和map转化为json串主要就是由于map无序,转化后的json串key是无序的
如果参数是接收一个参数,那么通过结构体和map转化都是可以的
代码示例:
package main
import (
"encoding/json"
"fmt"
)
type Person struct
Name string `json:"name"`
Age int `json:"age"`
Like []string `json:"like"` //不加`json:"like"`的话转化后的key为首字母大写的"Like"
func main()
fmt.Println("---------struct2json---------")
struct2Json()
fmt.Println("---------map2json------------")
map2Json()
func struct2Json()
//转换从json的字段必须首字母大写
stu := Person"Yang", 31,[]string"电影", "学习"
//json_byte, err := json.Marshal(stu)
json_byte, err := json.MarshalIndent(stu, "", " ") //看上去更加格式化
//json_byte, err := json.Marshal(stu, )
if err != nil
fmt.Println("json.Marshal error")
return
fmt.Println(string(json_byte))
func map2Json()
person := make(map[string]interface, 6)
person["name"] = "Yang"
person["age"] = 31
person["like"] = []string"电影", "学习"
//json_byte, err := json.Marshal(stu)
json_byte, err := json.MarshalIndent(person, "", " ") //进行格式处理
if err != nil
fmt.Println("json.Marshal error")
return
fmt.Println(string(json_byte))
输出结果:
---------struct2json---------
"name": "Yang",
"age": 31,
"like": [
"电影",
"学习"
]
---------map2json------------
"age": 31,
"like": [
"电影",
"学习"
],
"name": "Yang"
以上是关于Go struct和map转化为JSON串的主要内容,如果未能解决你的问题,请参考以下文章
Go语言高级特性总结——StructMap与JSON之间的转化