新地鼠來了!我正在使用 go 中的 rest API,我現在正在解析我的第一個返回 JSON,似乎遇到了一些麻煩。首先,來自 API 調用的原始返回讓我知道:spew.Dump(body)(string) (len=205) "{\"return\": {\n \"apiMajorVersion\": 3,\n \"apiMinorVersion\": 0,\n \"esmMajorVersion\": 9,\n \"esmMinorVersion\": 5,\n \"esmPatch\": \"MR7\",\n \"esmRevision\": 0,\n \"esmVersionString\": \"9.5.0 20150908\"\n}}"字符串中嵌入了所有反斜杠和換行符。如果我打印fmt.Println(body){"return": { "apiMajorVersion": 3, "apiMinorVersion": 0, "esmMajorVersion": 9, "esmMinorVersion": 5, "esmPatch": "XX7", "esmRevision": 0, "esmVersionString": "9.5.0 20150908"}}然后我得到有效的json。如果我嘗試將它解組到結構中,我將無法正確獲取結構中的值。type ESMVersionStruct struct { APIMajorVersion int8 `json:"return>apiMajorVersion"` APIMinorVersion int8 `json:"apiMinorVersion"` ESMMajorVersion int8 `json:"esmMajorVersion"` ESMMinorVersion int8 `json:"esmMinorVersion"` ESMPatch string `json:"esmPatch"` ESMRevision int8 `json:"esmRevision"` ESMVersionString string `json:"esmVersionString"`}我已經嘗試過在返回中指定對象而不是。jsonData := []byte(body)var ESMVersion ESMVersionStructjson.Unmarshal(jsonData, &ESMVersion)fmt.Println(ESMVersion.APIMajorVersion)fmt.Print(ESMVersion.APIMinorVersion)最后兩個都返回空值。在此先感謝您對這方面的任何幫助!
go 字符串處理和 JSON
慕的地6264312
2021-11-08 16:56:09
