golang はどのように JSON 配列を解析しますか?
Go言語では、encoding/json というパッケージを使用して JSON データをパースや取り扱いできます。まず、JSON データの構造を表す構造体を定義します。それから、json.Unmarshal() 関数を使用して JSON データを定義した構造体にパースします。
JSON配列を含む文字列をパースする、サンプルコードを以下に示します。
package main
import (
"encoding/json"
"fmt"
)
type User struct {
Name string `json:"name"`
Email string `json:"email"`
}
func main() {
data := `[{"name": "Alice", "email": "alice@example.com"}, {"name": "Bob", "email": "bob@example.com"}]`
var users []User
err := json.Unmarshal([]byte(data), &users)
if err != nil {
fmt.Println("解析JSON出错:", err)
return
}
fmt.Println(users)
}
上記のコードでは、JSONの各オブジェクトを表すUser構造体を定義しています。構造体のフィールド名はJSONのキー名に対応しており、フィールド名とJSONキー名を対応付けるためにjson構造タグを使用できます。main()関数では、最初にJSON文字列を定義し、次にjson.Unmarshal()関数を使用して、それを[]User型の変数usersに解析します。解析が成功した場合、usersには解析されたJSON配列が含まれます。
出力は以下のような形式になります。
[{Alice alice@example.com} {Bob bob@example.com}]
JSON配列をパースするときは、JSON文字列のバイトスライスをjson.Unmarshal()関数に渡すことと、受け取る変数のポインタをjson.Unmarshal()に渡す必要があることに注意してください。そうすることで、json.Unmarshal()関数はJSONデータを解析し、変数に格納されます。