du532861657 2015-03-23 05:30
浏览 699
已采纳

将[] uint8 / [] byte转换为哈希表GoLang

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 ?

  • 写回答

1条回答 默认 最新

  • dongye9191 2015-03-23 06:18
    关注

    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.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?