环球动态: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号修改单

