如何在Go 中解析JSON 數組
在Go 中,encoding/json 套件提供了將JSON 資料解組為Go 結構的支持。要解析 JSON 數組,可以使用以下步驟:
定義一個 Go 結構體: 定義一個表示 JSON 中各個元素形狀的結構體大批。例如,如果JSON 陣列包含具有名稱和價格欄位的對象,則可以定義下列結構體:
type PublicKey struct { Name string Price string }
注意: 確保結構體中的欄位名稱與欄位符合JSON 陣列中的名稱。
建立結構體切片: 建立定義的結構體類型的切片來保存解析的資料:
var keys []PublicKey
解組JSON: 使用json.Unmarshal() 函數將JSON 陣列解組為結構切片:
err := json.Unmarshal([]byte(jsonStr), &keys)
其中 jsonStr是要解析的 JSON 資料。
處理任何錯誤: 檢查解組期間遇到的任何錯誤。如果發生錯誤,則會儲存在 err 變數中:
if err != nil { // Handle the error }
存取解析後的資料: 一旦 JSON陣列解析完畢,就可以存取結構體切片的各個元素:
for _, key := range keys { fmt.Println(key.Name, key.Price) }
範例:
以下程式碼示範瞭如何使用以上步驟:
package main import ( "encoding/json" "fmt" ) type PublicKey struct { Name string Price string } func main() { jsonStr := `[{"name":"Galaxy Nexus", "price":"3460.00"},{"name":"Galaxy Nexus", "price":"3460.00"}]` var keys []PublicKey err := json.Unmarshal([]byte(jsonStr), &keys) if err == nil { for _, key := range keys { fmt.Println(key.Name, key.Price) } } else { fmt.Println(err) } }
輸出:
Galaxy Nexus 3460.00 Galaxy Nexus 3460.00
以上是如何在 Go 中解析 JSON 數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!