Golang での基本の JSON 処理をメモ。
なお、OS は Ubuntu 20.04, go version go1.16.4 linux/amd64 で試しています。
package main
import (
"encoding/json"
"fmt"
)
type Product struct {
Name string `json:"name"`
Price int `json:"price"`
}
func main() {
// 0)
myjson := []byte("{\"name\":\"Macbook Air\", \"price\": 128000}")
fmt.Println(fmt.Sprintf("%s", myjson))
// 1)
var aProduct Product
err := json.Unmarshal(myjson, &aProduct)
if err == nil {
fmt.Println(aProduct.Name)
fmt.Println(aProduct.Price)
// 2)
myjson2, err := json.Marshal(aProduct)
if err == nil {
fmt.Println(fmt.Sprintf("%s", myjson2))
}
}
}
実行:
$ go run main.go
{"name":"Macbook Air", "price": 128000}
Macbook Air
128000
{"name":"Macbook Air","price":128000}
できました。
処理対象となる JSON のスキーマが固定されていれば、Golang での JSON 処理はわかりやすい。