环球动态:Go语言对JSON数据进行序列化和反序列化
                
                
(资料图)
golang中对json的序列化/反序列化操作还是比较容易的,序列化操作主要是通过encoding/json包的Marshal()方法来实现,反序列化操作主要是通过encoding/json包的Unmarshal()方法来实现。
//JSON序列化和反序列化
//可用在api序列化输出
//转成结构体,方便程序操作等
package main
import (
	"encoding/json"
	"fmt"
)
type Response1 struct {
	Page   int
	Fruits []string
}
type Response2 struct {
	Page   int      `json:"page"`
	Fruits []string `json:"fruits"`
}
func main() {
	//布尔型
	boolByte, _ := json.Marshal(true)
	fmt.Println(string(boolByte))
	//整数型
	intByte, _ := json.Marshal(100)
	fmt.Println(string(intByte))
	//浮点型
	floatByte, _ := json.Marshal(1.23456)
	fmt.Println(string(floatByte))
	//字符串
	stringByte, _ := json.Marshal("字符串啊啊啊")
	fmt.Println(string(stringByte))
	//切片
	sliceByte, _ := json.Marshal([]string{"apple", "orange", "banana"})
	fmt.Println(string(sliceByte))
	//字典
	mapByte, _ := json.Marshal(map[string]int{"apple": 5, "orange": 6, "banana": 7})
	fmt.Println(string(mapByte))
	//自定义类型1
	customsByte1, _ := json.Marshal(&Response1{Page: 1, Fruits: []string{"apple", "orange", "banana"}})
	fmt.Println(string(customsByte1))
	//自定义类型2,tag语法
	customsByte2, _ := json.Marshal(&Response2{Page: 2, Fruits: []string{"apple", "orange", "banana"}})
	fmt.Println(string(customsByte2))
	//反序列化到结构体
	json1 := `{"Page":1,"Fruits":["apple","orange","banana"]}`
	json2 := `{"page":2,"fruits":["apple","orange","banana"]}`
	response1 := Response1{}
	response2 := Response2{}
	json.Unmarshal([]byte(json1), &response1)
	fmt.Println(response1)
	json.Unmarshal([]byte(json2), &response2)
	fmt.Println(response2)
}到此这篇关于Go语言对JSON数据进行序列化和反序列化的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
X 关闭
X 关闭
- 1转转集团发布2022年二季度手机行情报告:二手市场“飘香”
 - 2充电宝100Wh等于多少毫安?铁路旅客禁止、限制携带和托运物品目录
 - 3好消息!京东与腾讯续签三年战略合作协议 加强技术创新与供应链服务
 - 4名创优品拟通过香港IPO全球发售4100万股 全球发售所得款项有什么用处?
 - 5亚马逊云科技成立量子网络中心致力解决量子计算领域的挑战
 - 6京东绿色建材线上平台上线 新增用户70%来自下沉市场
 - 7网红淘品牌“七格格”chuu在北京又开一家店 潮人新宠chuu能红多久
 - 8市场竞争加剧,有车企因经营不善出现破产、退网、退市
 - 9北京市市场监管局为企业纾困减负保护经济韧性
 - 10市场监管总局发布限制商品过度包装标准和第1号修改单
 

