go語言之JSON與md5值
阿新 • • 發佈:2018-10-24
變量 數據交互 student val 解析 hash 消息 Go語言 json go語言之JSON與md5值
一、Json是什麽?
是一種輕量級的數據交換語言,用於數據交換。Json由於比XML更小、更快、更易解析,以及瀏覽器的內建快速解析支持,使得其更實用於網絡數據交互。目前我們看到很多的開放平臺,基本上都是采用了JSON作為他們的數據交互的接口。
go語言提供了內置的encoding/json 標準庫,在github上提供了更快的json標準庫,github.com/pquerna/ffjson/ffjson
二、JSON數據的編碼和解碼
編碼函數:
func Marshal(v interface{}) ([]byte,error)
解碼函數: func Unmarshal(data []byte, v interface{}) error
三、代碼實現Json編碼與解碼
package main import ( "fmt" "encoding/json" ) type Student struct { Name string `json:"student_name"` Age int `json:"student_age"` } func main() { //對數組類型的json編碼 x := [5]int{1, 2, 3, 4, 5} s, err := json.Marshal(x) if err != nil { panic(err) } fmt.Println(string(s)) //對map類型進行json編碼 //聲明一個map類型變量m m := make(map[string]float64) //給m變量賦值 m["zhangsan"] = 100.10 //對m變量進行json編碼 s2, err2 := json.Marshal(m) if err2 != nil { panic(err2) } fmt.Println(string(s2)) //對對象類型進行json編碼 student := Student{"zhangsan",13} s3, err3 := json.Marshal(student) if err3 != nil { panic(err3) } fmt.Println(string(s3)) //對s3進行解碼 var s4 interface{} json.Unmarshal([]byte(s3), &s4) fmt.Printf("%v", s4) }
輸出結果
[1,2,3,4,5]
{"zhangsan":100.1}
{"student_name":"zhangsan","student_age":13}
map[student_name:zhangsan student_age:13]
四、什麽是md5
MD5消息摘要算法(英語:MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數,可以產生出一個128位(16字節)的散列值(hash value),用於確保信息傳輸完整一致。Md5值算法復雜,具有不可逆性,廣泛應用於普通數據的錯誤檢查領域。
Go語言內置的crypto/md5 標準庫使用格式
Md5Inst := md5.New() Md5Inst.Write([]byte(“test md5”)) Result := Md5Inst.Sum([]byte("")) fmt.Printf("%x\n\n",Result)
五、代碼實現md5值加密
// json.go
package main
import (
"crypto/md5"
"fmt"
)
func main() {
Md5Inst := md5.New()
Md5Inst.Write([]byte("jack ma"))
Result := Md5Inst.Sum([]byte(""))
fmt.Printf("%x\n\n", Result)
}
輸出結果
a60779fd9cabc5458f86f5b7b2c02a6a
go語言之JSON與md5值