在Go語言中,將JSON轉換成數組非常簡單。您只需要首先創建一個結構以對應JSON字符串,并使用“json.Marshal()”函數將JSON字符串解碼為數組。以下是一個簡單的例子。
package main
import (
"encoding/json"
"fmt"
)
type Person struct {
Name string `json:"name"`
Age int `json:"age"`
Location string `json:"location"`
}
func main() {
jsonStr := `[{"name":"John","age":30,"location":"New York"},{"name":"Mary","age":25,"location":"San Francisco"}]`
var people []Person
err := json.Unmarshal([]byte(jsonStr), &people)
if err != nil {
fmt.Println("error:", err)
return
}
fmt.Printf("%+v", people)
}
首先,在主程序中聲明一個名為“Person”的結構,它具有三個字段:“Name”,“Age”和“Location”。每個字段后面的“json”標記用于指定解碼器應該在JSON字符串中查找的字段的名稱。
然后,在main函數中,聲明一個名為“jsonStr”的變量,它將存儲JSON字符串。接下來,聲明一個名為“people”的空切片,該切片將用于存儲解碼后的JSON數據。
然后,使用json.Unmarshal()函數將JSON字符串解碼為人員切片。它將解碼后的數據存儲在“people”變量中,并在遇到任何錯誤時返回錯誤。最后,使用fmt.Printf()函數將人員切片格式化為漂亮的輸出。
注意,如果JSON字符串中的字段名稱與結構中的字段名稱不匹配,解碼器將無法解碼JSON數據。因此,請確保根據需要為各個字段添加正確的“json”標記。