如何在 Golang 中將 JSON 解碼為物件?


假設我們有一個如下所示的 JSON。

{
   "name":"Mukul Latiyan",
   "age":10,
   "sports":[
      "football",
      "tennis",
      "cricket"
   ]
}

現在,我們想將此 JSON 轉換為我們稍後可以訪問乃至遍歷的**結構**欄位。

為此,我們首先需要建立**結構**,該**結構**將滿足上述 JSON 的欄位。

下面顯示的**結構**適用於上述 JSON。

type Person struct {
   Name string `json:"name"`
   Age int `json:"age"`
   Sports []string `json:"sports"`
}

現在,下一步是用型別轉換的幫助將上述 JSON 物件轉換為位元組切片,然後,我們將該位元組切片連同**Person**物件作為第二個引數傳遞給**Unmarshal()**函式。

示例

考慮以下所示程式碼。

package main

import (
   "encoding/json"
   "fmt"
)

type Person struct {
   Name string `json:"name"`
   Age int `json:"age"`
   Sports []string `json:"sports"`
}

func main() {
   text := []byte(
      `{
         "name":"Mukul Latiyan",
         "age":10,
         "sports":["football","tennis","cricket"]

      }`)
   var p Person
   err := json.Unmarshal(text, &p)
   if err != nil {
      panic(err)
   }
   fmt.Println(p.Name)
   fmt.Println(p.Age)
   for _, value := range p.Sports {
      fmt.Println(value)
   }
}

在上述程式碼中,在呼叫**Unmarshal**函式後,我們僅列印**結構**中不同欄位的值。

如果我們在上述程式碼上執行命令 **go run main.go**,那麼我們將在終端中獲得以下輸出。

輸出

Mukul Latiyan
10
football
tennis
cricket

更新於: 2021-11-01

1K+ 檢視

開啟你的 職業生涯

完成課程以取得認證

開始
廣告
© . All rights reserved.