溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

go語(yǔ)言之JSON與md5值

發(fā)布時(shí)間:2020-07-10 04:37:35 來(lái)源:網(wǎng)絡(luò) 閱讀:804 作者:PowerMichael 欄目:編程語(yǔ)言

go語(yǔ)言之JSON與md5值

一、Json是什么?

是一種輕量級(jí)的數(shù)據(jù)交換語(yǔ)言,用于數(shù)據(jù)交換。Json由于比XML更小、更快、更易解析,以及瀏覽器的內(nèi)建快速解析支持,使得其更實(shí)用于網(wǎng)絡(luò)數(shù)據(jù)交互。目前我們看到很多的開(kāi)放平臺(tái),基本上都是采用了JSON作為他們的數(shù)據(jù)交互的接口。
go語(yǔ)言提供了內(nèi)置的encoding/json 標(biāo)準(zhǔn)庫(kù),在github上提供了更快的json標(biāo)準(zhǔn)庫(kù),github.com/pquerna/ffjson/ffjson

二、JSON數(shù)據(jù)的編碼和解碼

編碼函數(shù):
            func Marshal(v interface{}) ([]byte,error)
    解碼函數(shù):
        func Unmarshal(data []byte, v interface{}) error

三、代碼實(shí)現(xiàn)Json編碼與解碼

package main

import (
    "fmt"
    "encoding/json"
)

type Student struct {
    Name string `json:"student_name"`
    Age int `json:"student_age"`
}

func main()  {
    //對(duì)數(shù)組類(lèi)型的json編碼
    x := [5]int{1, 2, 3, 4, 5}
    s, err := json.Marshal(x)
    if err != nil {
        panic(err)
    }
    fmt.Println(string(s))

    //對(duì)map類(lèi)型進(jìn)行json編碼

    //聲明一個(gè)map類(lèi)型變量m
    m := make(map[string]float64)
    //給m變量賦值
    m["zhangsan"] = 100.10
    //對(duì)m變量進(jìn)行json編碼
    s2, err2 := json.Marshal(m)

    if err2 != nil {
        panic(err2)
    }

    fmt.Println(string(s2))

    //對(duì)對(duì)象類(lèi)型進(jìn)行json編碼
    student := Student{"zhangsan",13}
    s3, err3 := json.Marshal(student)

    if err3 != nil {
        panic(err3)
    }

    fmt.Println(string(s3))

    //對(duì)s3進(jìn)行解碼

    var s4 interface{}
    json.Unmarshal([]byte(s3), &s4)
    fmt.Printf("%v", s4)

}

輸出結(jié)果
[1,2,3,4,5]
{"zhangsan":100.1}
{"student_name":"zhangsan","student_age":13}
map[student_name:zhangsan student_age:13]

四、什么是md5

MD5消息摘要算法(英語(yǔ):MD5 Message-Digest Algorithm),一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。Md5值算法復(fù)雜,具有不可逆性,廣泛應(yīng)用于普通數(shù)據(jù)的錯(cuò)誤檢查領(lǐng)域。
Go語(yǔ)言?xún)?nèi)置的crypto/md5 標(biāo)準(zhǔn)庫(kù)

使用格式

Md5Inst := md5.New()     
Md5Inst.Write([]byte(“test md5”))     
Result := Md5Inst.Sum([]byte(""))     
fmt.Printf("%x\n\n",Result)

五、代碼實(shí)現(xiàn)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)
}

輸出結(jié)果
a60779fd9cabc5458f86f5b7b2c02a6a

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI