Golang 结构体和 Json 相互转换 序列化 反序列化

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也
易于机器解析和生成。 RESTfull Api 接口中返回的数据都是 json 数据。
结构体与 JSON 序列化
Golang JSON 序列化 是指把结构体数据转化成 JSON 格式的字符串, Golang JSON 的反序列化
是指把 JSON 数据转化成 Golang 中的结构体对象
Golang 中 的 序 列 化 和 反 序 列 化 主 要 通 过 "encoding/json" 包 中 的 json.Marshal() json.Unmarshal() 方法实现
结构体对象转化成 Json 字符串
package main 
import ( "encoding/json" "fmt" )
type Student struct {
 ID int
 Gender string
 name string //私有属性不能被 json 包访问 
Sno string 
}
func main() { 
var s1 = Student{ ID: 1, Gender: "男", Name: "李四", Sno: "s0001", }
fmt.Printf("%#v\n", s1)
 var s, _ = json.Marshal(s1)
 jsonStr := string(s) 
fmt.Println(jsonStr) 
}
Json 字符串转换成结构体对象
package main
import ( "encoding/json" "fmt" )
type Student struct {
 ID int 
Gender string 
Name string 
Sno string 
}
func main() { 
// var jsonStr = "{\"ID\":1,\"Gender\":\"男\",\"Name\":\"李四\",\"Sno\":\"s0001\"}" var jsonStr = `{"ID":1,"Gender":"男","Name":"李四","Sno":"s0001"}` 
//定义一个 Monster 实例 
var student Student 
err := json.Unmarshal([]byte(jsonStr), &student) 
if err != nil { 
fmt.Printf("unmarshal err=%v\n", err) 
}
fmt.Printf("反序列化后 student=%#v student.Name=%v \n", student, student.Name) }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值