どのような方法でGoでJSON解析を行うことができますか?
Go言語では、JSONデータを解析するために以下の方法を使用できます:
- エンコーディング/json
- JSONエンコーディング
- デシリアライズ()
- アンマーシャル()
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
jsonStr := `{"name":"Alice","age":25}`
var person Person
err := json.Unmarshal([]byte(jsonStr), &person)
if err != nil {
panic(err)
}
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)
- json.Unmarshal()を日本語で言い換えると、jsonのデータを解析するという意味になります。
- json.Unmarshal()を日本語で説明すると、「JSONファイルからデータを読み込む」です。
- マップ[文字列] インターフェース{}
- 地図 (Chizu)
- インタフェース{}
- スライス型のバイトデータ
- json.Unmarshal()を利用してください。
jsonStr := `{"name":"Alice","age":25}`
var data map[string]interface{}
err := json.Unmarshal([]byte(jsonStr), &data)
if err != nil {
panic(err)
}
fmt.Printf("Name: %s, Age: %f\n", data["name"].(string), data["age"].(float64))
- json.Decoderを使用してください。
- データを解釈するためのJSONデコーダ
- 復号化する (Fukugouka suru)
- json.Decoderを利用する
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}
jsonStr := `{"name":"Alice","age":25}`
var person Person
dec := json.NewDecoder(strings.NewReader(jsonStr))
for {
if err := dec.Decode(&person); err == io.EOF {
break
} else if err != nil {
panic(err)
}
fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)
}
どの方法を使用しても、JSONデータを解析する際にエラーを処理する必要があります。解析プロセスが正確に行われるように注意してください。