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

Kar*_*Rao 3 json go

我的服务器发送一个 JSON 响应,如下所示

{"SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986"}
Run Code Online (Sandbox Code Playgroud)

但 My Go 程序以 []uint8 类型接收它。另外,从服务器发送的 JSON 的大小没有确定的大小,它会有所不同。如何再次将其转换为包含键/值对的哈希表?

icz*_*cza 5

请注意,这byte是 的别名uint8。话虽如此,你想要的是一个简单的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)
Run Code Online (Sandbox Code Playgroud)

输出(包装):

map["SortAs":"SGML" "GlossTerm":"Standard Generalized Markup Language"
    "Acronym":"SGML" "Abbrev":"ISO 8879:1986"]
Run Code Online (Sandbox Code Playgroud)

在Go Playground上尝试一下。