Goal
Convert string -> json (go struct, data)
Convert json -> string
encoding/json
To handle json and object in golang, please use encoding/json pakcage
Json String to Struct
The first example is to convert Json String to Go Struct
package main import ( "fmt" "encoding/json" ) type Personal struct { Name string `json:"name"` Age int `json:"age"` Jobs []Job `json:"josb"` } type Job struct { Name string `json:"name"` } func main() { jsonStr := ` { "name": "Taro", "age": 15, "josb": [{ "name": "Employee" }] } ` jsonB := ([]byte)(jsonStr) jsonData := new(Personal) // jsonData := &Personal{} if err := json.Unmarshal(jsonB, jsonData); err != nil { fmt.Println("Error parse", err) return } fmt.Println(jsonData) fmt.Println(jsonData.Name) fmt.Println(jsonData.Age) fmt.Println(jsonData.Jobs[0].Name) }
Struct to Json String
package main import ( "fmt" "encoding/json" ) type Personal struct { Name string `json:"name"` Age int `json:"age"` Jobs []Job `json:"josb"` } type Job struct { Name string `json:"name"` } func main() { job := Job{Name: "Duelist"} person := Personal{ Name: "Jiro", Age: 18, Jobs: []Job{job}, } jsonBytes, err := json.Marshal(person) if err != nil { fmt.Println("Json error:", err) return } fmt.Println(string(jsonBytes)) }
コメント