我的服务器发送一个JSON响应,其格式如下所示:
{"SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986"}
但是我的Go程序将其作为类型[]uint8接收。此外,从服务器发送的JSON大小不是固定的,它会变化。我应该如何将其转换成包含键/值对的哈希表?
我的服务器发送一个JSON响应,其格式如下所示:
{"SortAs": "SGML","GlossTerm": "Standard Generalized Markup Language","Acronym": "SGML","Abbrev": "ISO 8879:1986"}
但是我的Go程序将其作为类型[]uint8接收。此外,从服务器发送的JSON大小不是固定的,它会变化。我应该如何将其转换成包含键/值对的哈希表?
byte
是uint8
的别名。话虽如此,您需要的是一个简单的json解析器: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)
输出(已包装):
map["SortAs":"SGML" "GlossTerm":"Standard Generalized Markup Language"
"Acronym":"SGML" "Abbrev":"ISO 8879:1986"]
请在Go Playground上尝试。
string
之外的其他类型,例如列表或嵌套结构体。请使用 map[string]interface{}
类型的映射。 - icza