Saya sedang belajar https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go#using-a-struct-to-generate-json(go versi lama).
Saya menggunakan 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))
Kembali
&{1234 true hello! 2022-03-02 09:10:00 +0000 UTC 0xc000008240 <nil> 0xc00001a170}
Saya nak semak {"intvalue": 1234, "boolvalue": true, ...}
, tolong guide saya.
Kod sumber penuh https://github.com/donhuvy/vy_learn_go_json2023/blob/main/sample3/main3.go#l36
Mengapa penggunaan saya fmt.println(string(json.marshal(data)))
menyebabkan ralat?
Saya biasanya menggunakan perpustakaan pengekodan json. Tengok contoh di bawah:
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) }
Keluaran:
{"intValue":1234,"boolValue":true,"stringValue":"hello!","dateValue":"2022-03-02T09:10:00Z","objectValue":{"arrayValue":[1,2,3,4]},"nullStringValue":null,"nullIntValue":4321}
Atas ialah kandungan terperinci Bagaimana untuk melihat kunci tag json menggunakan go struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!