Home >Backend Development >Golang >How to view json's tag key using go struct?
I am learning https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go#using -a-struct-to-generate-json (old version of go).
I use go 1.20.1, windows 11 x64, goland 2022.3.2.
package sample3 import ( foo "encoding/json" "fmt" "time" ) type myjson struct { intvalue int `json:"intvalue"` boolvalue bool `json:"boolvalue"` stringvalue string `json:"stringvalue"` datevalue time.time `json:"datevalue"` objectvalue *myobject `json:"objectvalue"` nullstringvalue *string `json:"nullstringvalue"` nullintvalue *int `json:"nullintvalue"` } type myobject struct { arrayvalue []int `json:"arrayvalue"` } func main3() { otherint := 4321 data := &myjson{ intvalue: 1234, boolvalue: true, stringvalue: "hello!", datevalue: time.date(2022, 3, 2, 9, 10, 0, 0, time.utc), objectvalue: &myobject{ arrayvalue: []int{1, 2, 3, 4}, }, nullstringvalue: nil, nullintvalue: &otherint, } fmt.println(foo.marshal(data)) fmt.println(data) type myint struct { intvalue int } data2 := &myint{intvalue: 1234} fmt.println(foo.marshal(data2)) }
OK
fmt.println(foo.marshal(data))
return
&{1234 true hello! 2022-03-02 09:10:00 +0000 UTC 0xc000008240 <nil> 0xc00001a170}
I want to check {"intvalue": 1234, "boolvalue": true, ...}
, please guide me.
Full source code https://github.com/donhuvy/vy_learn_go_json2023/blob/main/sample3/main3.go#l36
Why does my use of fmt.println(string(json.marshal(data)))
cause an error?
I usually use the json encoding library. Take a look at the following example:
package main import ( "encoding/json" "time" ) type myjson struct { intvalue int `json:"intvalue"` boolvalue bool `json:"boolvalue"` stringvalue string `json:"stringvalue"` datevalue time.time `json:"datevalue"` objectvalue *myobject `json:"objectvalue"` nullstringvalue *string `json:"nullstringvalue"` nullintvalue *int `json:"nullintvalue"` } type myobject struct { arrayvalue []int `json:"arrayvalue"` } func main() { otherint := 4321 data := &myjson{ intvalue: 1234, boolvalue: true, stringvalue: "hello!", datevalue: time.date(2022, 3, 2, 9, 10, 0, 0, time.utc), objectvalue: &myobject{ arrayvalue: []int{1, 2, 3, 4}, }, nullstringvalue: nil, nullintvalue: &otherint, } bytes, err := json.marshal(data) // <-------------------this line println(string(bytes)) // <-------------------and this line println(err) }
Output:
{"intValue":1234,"boolValue":true,"stringValue":"hello!","dateValue":"2022-03-02T09:10:00Z","objectValue":{"arrayValue":[1,2,3,4]},"nullStringValue":null,"nullIntValue":4321}
The above is the detailed content of How to view json's tag key using go struct?. For more information, please follow other related articles on the PHP Chinese website!