第三代半导体 接口测试 比特微 多线程 golang爬虫 file magento iis ssis get vue开发教程 pmp视频教程下载 vm虚拟化引擎 pip环境变量配置 python数据类型 mysql 导入数据 python生成随机数 python3基础教程 python程序实例 java集合 java的map java接口开发 java字符串相等 嵌入式linux驱动程序设计从入门到精通 苹果手机老是自动重启 电视免费软件 dnf武极刷图加点 王者荣耀自动刷冒险 movavi ios12录屏 pr时间轴 平面设计软件下载 linux解压命令 4k对齐是什么意思 dota2控制台 winsxs可以删除吗 联盟练级路线 studioone 内存条是什么 抖音道具
当前位置: 首页 > 学习教程  > 编程语言

Go 结构体、数组、字典和 json 字符串的相互转换方法

2020/12/28 19:47:39 文章标签:

Go 语言中 encoding/json包可以很方便的将结构体、数组、字典转换为 json 字符串。 1. 相关语法 1.1 引入 import "encoding/json"1.2 解析语法 // v 传入结构体、数组等实例变量 // []byte 字节数组 // error 可能会有的错误 func Marshal(v interface{}) ([]byt…

Go 语言中 encoding/json包可以很方便的将结构体、数组、字典转换为 json 字符串。

1. 相关语法

1.1 引入

import "encoding/json"

1.2 解析语法

// v 传入结构体、数组等实例变量
// []byte 字节数组
// error 可能会有的错误
func Marshal(v interface{}) ([]byte, error)

1.3 反解析

// []byte 字节数组
// v 传入结构体、数组等实例变量的指针地址
// error 可能会有的错误
func Unmarshal(data []byte, v interface{}) error

2 代码

package main
 
import (
 "fmt"
 "encoding/json"
)
 
type User struct {
 Id int `json:"id"`
 Name string `json:"name"`
}
 
func main() {
 // 字符串解析为结构体
 s := `{"id": 1, "name": "xiaoliu"}`
 
 var user User
 // 将字符串反解析为结构体
 json.Unmarshal([]byte(s), &user)
 fmt.Println(user) // {1 xiaoliu}
 
 var d map[string]interface{}
 // 将字符串反解析为字典
 json.Unmarshal([]byte(s), &d)
 fmt.Println(d)  // map[id:1 xiaoliu]
 
 
 s = `[1, 2, 3, 4]`
 var a []int
 // 将字符串反解析为数组
 json.Unmarshal([]byte(s), &a)
 fmt.Println(a)  // [1 2 3 4]
 
 // 将结构体解析为字符串
 b, _ := json.Marshal(user)
 fmt.Println(string(b)) // {"id":1,"name":"xiaoliu"}
 
 b, _ = json.Marshal(a)
 fmt.Println(string(b)) // [1,2,3,4]
 
 b, _ = json.Marshal(d)
 fmt.Println(string(b)) // {"id":1,"name":"xiaoliu"}
}

以上这篇Go 结构体、数组、字典和 json 字符串的相互转换方法就是全部内容了,希望能给大家一个参考。
更多内容请参参考:

  • 官方文档
  • 腾讯云开发手册

本文链接: http://www.dtmao.cc/news_show_550382.shtml

附件下载

上一篇:big一 问题之二

下一篇:3、IOC 容器

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?