Go 结构体、数组、字典和 json 字符串的相互转换方法
作者:哆啦A梦~~ 时间:2024-05-05 09:26:42
Go 语言中 encoding/json 包可以很方便的将结构体、数组、字典转换为 json 字符串。
引用
import "encoding/json"
解析语法
// v 传入结构体、数组等实例变量
// []byte 字节数组
// error 可能会有的错误
func Marshal(v interface{}) ([]byte, error)
反解析
// []byte 字节数组
// v 传入结构体、数组等实例变量的指针地址
// error 可能会有的错误
func Unmarshal(data []byte, v interface{}) error
代码
package main
// https://golang.org/pkg/encoding/json/
// https://cloud.tencent.com/developer/section/1141542#stage-100023262
import (
"fmt"
"encoding/json"
)
type User struct {
Id int `json:"id"`
Name string `json:"name"`
}
func main() {
// 字符串解析为结构体
s := `{"id": 1, "name": "wxnacy"}`
var user User
// 将字符串反解析为结构体
json.Unmarshal([]byte(s), &user)
fmt.Println(user) // {1 wxnacy}
var d map[string]interface{}
// 将字符串反解析为字典
json.Unmarshal([]byte(s), &d)
fmt.Println(d) // map[id:1 name:wxnacy]
s = `[1, 2, 3, 4]`
var a []int
// 将字符串反解析为数组
json.Unmarshal([]byte(s), &a)
fmt.Println(a) // [1 2 3 4]
// 将结构体解析为字符串
b, e := json.Marshal(user)
fmt.Println(e)
fmt.Println(string(b)) // {"id":1,"name":"wxnacy"}
b, e = json.Marshal(a)
fmt.Println(string(b), e) // [1,2,3,4] <nil>
b, e = json.Marshal(d)
fmt.Println(string(b), e) // {"id":1,"name":"wxnacy"} <nil>
}
来源:https://blog.csdn.net/sinat_34166518/article/details/83308228
标签:Go,结构体,数组,字典,json,字符串
0
投稿
猜你喜欢
Python3+cgroupspy安装使用简介
2022-11-13 15:11:21
Python中JSON的使用方法(超详细)
2023-11-15 23:04:19
thinkphp微信开发(消息加密解密)
2023-11-21 06:08:43
解读MaxPooling1D和GlobalMaxPooling1D的区别
2023-07-21 10:54:43
vue 指令版富文本溢出省略截取示例详解
2024-05-28 15:52:36
vue.js默认路由不加载linkActiveClass问题的解决方法
2024-05-02 16:53:25
python matplotlib实现将图例放在图外
2021-11-19 06:55:45
Python使用enumerate获取迭代元素下标
2023-03-05 01:46:31
如何提高网页的维护效率
2009-03-01 11:33:00
Python中的并发编程asyncio库入门使用
2021-02-13 05:03:52
vue 自定义全局方法,在组件里面的使用介绍
2024-05-29 22:46:17
利用Python内置库实现创建命令行应用程序
2022-04-26 03:39:19
python网络爬虫精解之Beautiful Soup的使用说明
2021-02-21 15:20:48
提升Python运行速度的5个小技巧
2021-07-28 20:25:24
Python 字典与字符串的互转实例
2023-06-27 07:51:22
Dreamweaver制作网页实用七小招
2009-05-29 18:36:00
对python读写文件去重、RE、set的使用详解
2022-09-25 04:33:48
Python 多线程搜索txt文件的内容,并写入搜到的内容(Lock)方法
2021-01-15 12:48:34
python 实现客户端与服务端的通信
2023-11-19 01:28:33
asp生成带日期的随机数
2008-09-03 13:13:00