Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Converting []uint8/[]byte to hash table GoLang

Tags:

json

go

My server sends a JSON response which looks like shown below

{"SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986"}

But My Go program receives it as type []uint8 . Also the size JSON sent from the server is not of definite size , it varies . How do i convert it into a Hash table containing key/value pair again ?

like image 857
Karthic Rao Avatar asked Sep 13 '25 20:09

Karthic Rao


1 Answers

Note that byte is an alias for uint8. Having said that what you want is a simple json unmarshal:

js := []byte(`{"SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language", "Acronym": "SGML","Abbrev": "ISO 8879:1986"}`)

m := map[string]interface{}{}
if err := json.Unmarshal(js, &m); err != nil {
    panic(err)
}
fmt.Printf("%q",m)

Output (wrapped):

map["SortAs":"SGML" "GlossTerm":"Standard Generalized Markup Language"
    "Acronym":"SGML" "Abbrev":"ISO 8879:1986"]

Try it on the Go Playground.

like image 193
icza Avatar answered Sep 16 '25 13:09

icza