package main
import("github.com/gogf/gf/frame/g""fmt")funcmain(){var v g.Var
v.Set("123")
fmt.Println(v.Val())// 基本类型转换
fmt.Println(v.Int())
fmt.Println(v.Uint())
fmt.Println(v.Float64())// slice转换
fmt.Println(v.Ints())
fmt.Println(v.Floats())
fmt.Println(v.Strings())// struct转换type Score struct{
Value int}
s :=new(Score)
v.Struct(s)
fmt.Println(s)}
执行后,输出结果为:
123
123
123
123
[123]
[123]
[123]
&{123}
JSON序列化/反序列
gvar.Var容器实现了标准库json数据格式的序列化/反序列化接口。
Marshal
package main
import("encoding/json""fmt""github.com/gogf/gf/frame/g")funcmain(){type Student struct{
Id *g.Var
Name *g.Var
Scores *g.Var
}
s := Student{
Id: g.NewVar(1),
Name: g.NewVar("john"),
Scores: g.NewVar([]int{100,99,98}),}
b,_:= json.Marshal(s)
fmt.Println(string(b))}
执行后,输出结果:
{"Id":1,"Name":"john","Scores":[100,99,98]}
Unmarshal
package main
import("encoding/json""fmt""github.com/gogf/gf/frame/g")funcmain(){
b :=[]byte(`{"Id":1,"Name":"john","Scores":[100,99,98]}`)type Student struct{
Id *g.Var
Name *g.Var
Scores *g.Var
}
s := Student{}
json.Unmarshal(b,&s)
fmt.Println(s)}