1. 程式人生 > >012-golang結構體或map轉換成json

012-golang結構體或map轉換成json

 

先來說結構體

 

func main() {

    stu:=Student{"張三",20,[]string{"男","未婚"}}

   bytes, err := json.Marshal(stu)

   if err != nil {
      fmt.Println(err)
      return
   }

   fmt.Println(string(bytes))

}

type Student struct {
   Name string
   Age int
   Data []string
}

 

 

我們來看看轉換的json結果

{"Name":"張三","Age":20,"Data":["男","未婚"]}

 

這裡的key必須是首字母大寫,如果不想要首字母大寫

我們可以用struct結構體的tag

 

type Student struct {
   Name string   `json:"name"`
   Age  int      `json:"age"`
   Data []string `json:"data"`
}

注意這裡的tag要用`這個符號哦 ```

 

 

然後如果我們想把json格式化一下

可以用另一個方法

 

func main() {

   stu := Student{"張三", 20, []string{"男", "未婚"}}

   bytes, err := json.MarshalIndent(stu, "", " ")

   if err != nil {
      fmt.Println(err)
      return
   }

   fmt.Println(string(bytes))

}

type Student struct {
   Name string   `json:"name"`
   Age  int      `json:"age"`
   Data []string `json:"data"`
}

 

再看一下輸出的json結果

 

{
 "name": "張三",
 "age": 20,
 "data": [
  "男",
  "未婚"
 ]
}

 

這樣就已經格式化好了

更加的美觀