Maison > Article > développement back-end > Comment afficher la clé de balise de json à l'aide de go struct ?
J'apprends https://www.digitalocean.com/community/tutorials/how-to-use-json-in-go#using-a-struct-to-generate-json(go ancienne version).
J'utilise 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))
Retour
&{1234 true hello! 2022-03-02 09:10:00 +0000 UTC 0xc000008240 <nil> 0xc00001a170}
Je veux vérifier {"intvalue": 1234, "boolvalue": true, ...}
, merci de me guider.
Code source complet https://github.com/donhuvy/vy_learn_go_json2023/blob/main/sample3/main3.go#l36
Pourquoi mon utilisation de fmt.println(string(json.marshal(data)))
provoque-t-elle une erreur ?
J'utilise habituellement la bibliothèque d'encodage json. Jetez un œil à l'exemple ci-dessous :
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) }
Sortie :
{"intValue":1234,"boolValue":true,"stringValue":"hello!","dateValue":"2022-03-02T09:10:00Z","objectValue":{"arrayValue":[1,2,3,4]},"nullStringValue":null,"nullIntValue":4321}
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!