首頁 >後端開發 >Golang >如何在 Golang 中解析 JSON 資料?

如何在 Golang 中解析 JSON 資料?

WBOY
WBOY原創
2024-06-03 15:33:09562瀏覽

Golang 解析 JSON 資料包含四個主要步驟:導入 आवश्यक包,包含 json、fmt 和 ioutil。從檔案中讀取 JSON 資料。將 JSON 資料解碼到結構體或 map 中。存取 map 中的鍵值對或使用解碼的結構體。

如何在 Golang 中解析 JSON 数据?

如何在Golang 中解析JSON 資料

Golang 提供了強大的工具來處理JSON 數據,可以透過以下步驟實作:

#1. 匯入必要的套件

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
)

2. 從檔案讀取JSON 資料

jsonFile, err := ioutil.ReadFile("data.json")
if err != nil {
    fmt.Println("Error reading JSON file:", err)
    return
}

3. 解碼JSON 資料到結構體或map

#解碼到結構體:

type Person struct {
    Name string
    Age  int
}

var person Person
err = json.Unmarshal(jsonFile, &person)
if err != nil {
    fmt.Println("Error decoding JSON data:", err)
    return
}

解碼到map 中:

var data map[string]interface{}
err = json.Unmarshal(jsonFile, &data)
if err != nil {
    fmt.Println("Error decoding JSON data:", err)
    return
}

// 访问 map中的键值对
fmt.Println("Name:", data["Name"])

實戰案例

讀取JSON 檔案並列印姓名和年齡:

package main

import (
    "encoding/json"
    "fmt"
    "io/ioutil"
)

type Person struct {
    Name string
    Age  int
}

func main() {
    jsonFile, err := ioutil.ReadFile("data.json")
    if err != nil {
        fmt.Println("Error reading JSON file:", err)
        return
    }

    var person Person
    err = json.Unmarshal(jsonFile, &person)
    if err != nil {
        fmt.Println("Error decoding JSON data:", err)
        return
    }

    fmt.Printf("Name: %s, Age: %d\n", person.Name, person.Age)
}

將以下JSON 資料儲存到檔案中:

{
  "Name": "John Doe",
  "Age": 30
}

然後執行程序,輸出如下:

Name: John Doe, Age: 30

以上是如何在 Golang 中解析 JSON 資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn