在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)
}
在上面的代碼中,我們定義了一個User
結構體來表示JSON中的每個對象。結構體的字段名與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數據并將解析結果存儲在變量中。