golang中json的使用

來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。

golang中使用json,經常會使用到兩個函數

func Unmarshal(data []byte, v interface{}) error

1 將json還原序列化成struct對象 

2將json 還原序列化到map中 

3 將json還原序列化到slice中


func Marshal(v interface{}) ([]byte, error)
1將struct對象序列化成json

2將map序列化成json

3將slice序列化成json


package main

 

import (

       "fmt"

       "encoding/json"

)

 

type User struct {

       Username string

        Password string

        FriendName []string

}

 

func main() {

 

         user:=User{}

         user.Username="Tom"

         user.Password="123456"

         user.FriendName=[]string{"Li","Fei"}

 

       //將struct轉成json字串,注意:結構體中的欄位首字母必須大寫,否則無法解析

       if userJSON,err:=json.Marshal(user);err==nil{

             fmt.Println(string(userJSON))   //列印結果:{"Username":"Tom","Password":"123456","FriendName":["Li","Fei"]}

        }

 

        //將slice轉成json字串

        arr:=[]string{"Apple","Orange","Banana"}

       if arrJSON,err:=json.Marshal(arr);err==nil{

               fmt.Println(string(arrJSON))  //列印結果:["Apple","Orange","Banana"]

        }

 

        //將map轉成json字串

         m:=map[string]string{"浙江":"杭州","湖南":"長沙"}

         if mJSON,err:=json.Marshal(m);err==nil{

                fmt.Println(string(mJSON))   //列印結果:{"浙江":"杭州","湖南":"長沙"}

          }

 

         //json轉成struct

         jsonStr:=`{"Username":"Tom","Password":"123456","FriendName":["Li","Fei"]}`

         var userJSON User

         if err:=json.Unmarshal([]byte(jsonStr),&userJSON);err==nil{

                   fmt.Println(userJSON)   //列印結果:{Tom 123456 [Li Fei]}

         }

 

         //json轉成slice

         jsonFruit:=`["Apple","Orange","Banana"]`

         var arrFruit  []string

         if err:=json.Unmarshal([]byte(jsonFruit),&arrFruit);err==nil{

               fmt.Println(arrFruit)   //列印結果:[Apple Orange Banana]

          }

 

         //json轉成map

         jsonCity:=`{"浙江":"杭州","湖南":"長沙"}`

         var mapCity map[string]string

         if err:=json.Unmarshal([]byte(jsonCity),&mapCity);err==nil{

                  fmt.Println(mapCity)  //列印結果: map[浙江:杭州 湖南:長沙]

         }

}

 




聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.