go语言-不同类型转换为JSON格式数据
1.将结构体转换为JSON:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Email string } func main() { person := Person{Name: "Alice" , Age: 25, Email: "alice@example.com" } jsonData, err := json.Marshal(person) if err != nil { fmt.Println( "转换失败:" , err) return } fmt.Println(string(jsonData)) } |
2.将切片转换为JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package main import ( "encoding/json" "fmt" ) func main() { numbers := []int{1, 2, 3, 4, 5} jsonData, err := json.Marshal(numbers) if err != nil { fmt.Println( "转换失败:" , err) return } fmt.Println(string(jsonData)) } 答案解析: |
3.将Map转换为JSON
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | package main import ( "encoding/json" "fmt" ) func main() { student := map [string] interface {}{ "name" : "Bob" , "age" : 20, "gender" : "male" , } jsonData, err := json.Marshal(student) if err != nil { fmt.Println( "转换失败:" , err) return } fmt.Println(string(jsonData)) } |
4.将JSON字符串转换为结构体
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int Email string } func main() { jsonData := `{ "Name" : "Alice" , "Age" :25, "Email" : "alice@example.com" }` var person Person err := json.Unmarshal([]byte(jsonData), &person) if err != nil { fmt.Println( "反序列化失败:" , err) return } fmt.Printf( "姓名:%s,年龄:%d,邮箱:%s\n" , person.Name, person.Age, person.Email) } |
5.将JSON数组转换为切片:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | go package main import ( "encoding/json" "fmt" ) func main() { jsonData := `[1,2,3,4,5]` var numbers []int err := json.Unmarshal([]byte(jsonData), &numbers) if err != nil { fmt.Println( "反序列化失败:" , err) return } fmt.Println(numbers) } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
2020-07-11 EasySwoole-ElasticSearch-Head启动