首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >go语言之JSON序列化

go语言之JSON序列化

作者头像
每周聚焦
发布2025-06-10 14:51:41
发布2025-06-10 14:51:41
12400
代码可运行
举报
运行总次数:0
代码可运行

在go语言中JSON序列化

跟Java中几乎是一样的,需要注意的是go语言包管理机制的原因,go变量和引入包首字母需要大写,表示全部宝可以引用

以下示例以及调用API,go语言序列化后返回的是byte字节数组,需要额外转string

代码语言:javascript
代码运行次数:0
运行
复制
go 
package main

import (
	"encoding/json"
	"fmt"
)

/**

json  序列化和反序列化
 */
func main() {


	var s = Student{"张三","北京"}

	//序列化
	b, err  :=  json.Marshal(s);
	if err==nil{
		fmt.Println("序列化后: ",b)
		fmt.Println("转换后: ",string(b))

		str := string(b)

		var stu = &Student{}
		//反序列化
		json.Unmarshal([]byte(str),stu);
		fmt.Println("反序列化后: " ,stu.Addre,stu.Name)
		fmt.Println("反序列化后: " ,stu)

	}


}


type Student struct {
	//序列化后null的原因 有序结构体的原因   序列化包无法访问到其他包的字段
	//对象首字母小写 小写表示私有 大写表示共有
	Name string `json name xml:"name"`
	Addre string `json name xml:"addre"`
}

Student 对象中我们这儿定义的是首字母大写变量,但一般明明按照首字母小写使用规范。

而json序列化包和Student包不在一个包内,反序列化会失败,对象值会为null,故此我们需要按照go语言中tag 序列化时候指定json序列化的变量 ,使用json时候会按照json后的变量进行序列化,xml同理

代码语言:javascript
代码运行次数:0
运行
复制
c 
	Name string `json name xml:"name"`

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档