Basic Usage
package main
import (
"github.com/gogf/gf/v2/frame/g"
"fmt"
)
func main() {
var v g.Var
v.Set("123")
fmt.Println(v.Val())
// Basic type conversion
fmt.Println(v.Int())
fmt.Println(v.Uint())
fmt.Println(v.Float64())
// Slice conversion
fmt.Println(v.Ints())
fmt.Println(v.Floats())
fmt.Println(v.Strings())
}
After execution, the output is:
123
123
123
123
[123]
[123]
[123]
JSON
Serialization/Deserialization
The gvar.Var
container implements the serialization/deserialization interface of the standard library json
data format.
Marshal
package main
import (
"encoding/json"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
func main() {
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))
}
After execution, the output is:
{"Id":1,"Name":"john","Scores":[100,99,98]}
Unmarshal
package main
import (
"encoding/json"
"fmt"
"github.com/gogf/gf/v2/frame/g"
)
func main() {
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)
}
After execution, the output is:
{1 john [100,99,98]}