站长网_站长创业_站长主页_站长之家_易采站长站

会员投稿 投稿指南 站长资讯通告: Go 结构体、数组、字典和 json 字符串的相互转换
搜索:
您的位置: 主页 > 教程 > 脚本教程 > 其他脚本 > » 正文

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

来源: 易采站长站

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>
}

以上这篇Go 结构体、数组、字典和 json 字符串的相互转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易采站长站。

最新图文资讯
1 2 3 4 5 6
相关文章列表:
    golang json.Marshal 特殊html字符被转义的解决方法 golang json.Marshal 特殊html字符被转义的解
    go语言提供了json的编解码包,json字符串作为参数值传输时发现,json.Marshal生成json特殊字符、、#63;id=123#63;id=123\u0026
    golang 中获取字符串个数的方法 golang 中获取字符串个数的方法
    在 golang 中不能直接用 len 函数来统计字符串长度,查看了下源码发现字符串是以 UTF-8 为格式存储的,说明 len 函数是
    go中的unsafe包及使用详解 go中的unsafe包及使用详解
    Unsafe code是一种绕过go类型安全和内存安全检查的Go代码。大多数情况,unsafe code是和指针相关的。但是要记住使用un
    golang解析html网页的方法 golang解析html网页的方法
    1.先看一下整个结构: 主要是web和html目录,分别存放go代码和html相关的资源文件。 2.html代码比较简单,代码如下:
    Go JSON编码与解码的实现 Go JSON编码与解码的实现
    在开发应用程序时,客户端(前端页面或APP)与服务端交互是在所难免的,在交互过程传递数据时,最通用和流行格式便
    go for range遍历二维数组的示例 go for range遍历二维数组的示例
    go for range 遍历二维数组 var arry [2][3] intfor index,_ := range arry {fmt.Print(index)} 运行结果: 0 1 没有遍历所有的6个元素。 二
    go语言使用第三方包 json化结构体操作示例 go语言使用第三方包 json化结构体操作示
    本文实例讲述了go语言使用第三方包 json化结构体操作。分享给大家供大家参考,具体如下: 前提条件:安装好操作系
    golang解析域名的步骤全纪录 golang解析域名的步骤全纪录
    最近遇到了一个问题。 我们的kube-apiserver配置了OIDC认证,OIDC issuer是添加了dns server记录的,但由于某些原因,我需要
    go json转换实践中遇到的坑 go json转换实践中遇到的坑
    在使用 go 语言开发过程中,经常需要使用到 json 包来进行 json 和 struct 的互相转换,在使用过程中,遇到了一些需要
    Go语言字符串高效拼接的实现 Go语言字符串高效拼接的实现
    +号拼接 这种拼接最简单,也最容易被我们使用,因为它是不限编程语言的,比如Go语言有,Java也有,它们是+号运算
易采站长站 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助 -