どのような方法でGoでJSON解析を行うことができますか?

Go言語では、JSONデータを解析するために以下の方法を使用できます:

  1. エンコーディング/json
  2. JSONエンコーディング
  3. デシリアライズ()
  4. アンマーシャル()
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)
  1. json.Unmarshal()を日本語で言い換えると、jsonのデータを解析するという意味になります。
  2. json.Unmarshal()を日本語で説明すると、「JSONファイルからデータを読み込む」です。
  3. マップ[文字列] インターフェース{}
  4. 地図 (Chizu)
  5. インタフェース{}
  6. スライス型のバイトデータ
  7. 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))
  1. json.Decoderを使用してください。
  2. データを解釈するためのJSONデコーダ
  3. 復号化する (Fukugouka suru)
  4. 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データを解析する際にエラーを処理する必要があります。解析プロセスが正確に行われるように注意してください。

bannerAds