首頁 > 後端開發 > Golang > 如何在 Go 中解析 JSON 數組?

如何在 Go 中解析 JSON 數組?

Linda Hamilton
發布: 2024-11-19 20:23:03
原創
515 人瀏覽過

How do I parse a JSON array in Go?

如何在Go 中解析JSON 數組

在Go 中,encoding/json 套件提供了將JSON 資料解組為Go 結構的支持。要解析 JSON 數組,可以使用以下步驟:

  1. 定義一個 Go 結構體: 定義一個表示 JSON 中各個元素形狀的結構體大批。例如,如果JSON 陣列包含具有名稱和價格欄位的對象,則可以定義下列結構體:

    type PublicKey struct {
        Name string
        Price string
    }
    登入後複製

    注意: 確保結構體中的欄位名稱與欄位符合JSON 陣列中的名稱。

  2. 建立結構體切片: 建立定義的結構體類型的切片來保存解析的資料:

    var keys []PublicKey
    登入後複製
  3. 解組JSON: 使用json.Unmarshal() 函數將JSON 陣列解組為結構切片:

    err := json.Unmarshal([]byte(jsonStr), &keys)
    登入後複製

    其中 jsonStr是要解析的 JSON 資料。

  4. 處理任何錯誤: 檢查解組期間遇到的任何錯誤。如果發生錯誤,則會儲存在 err 變數中:

    if err != nil {
        // Handle the error
    }
    登入後複製
  5. 存取解析後的資料: 一旦 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板