Go语言解析JSON报错:接口类型转换失败问题排查
Go JSON解析类型转换错误问题解决
错误原因
你的JSON数据中,ccc对应的是一个数组([]包裹的结构),但代码里直接将其强制转换为map[string]interface{},类型不匹配触发了panic。
修正后的代码
package main import ( "encoding/json" "fmt" ) func main() { jsonData := `{"aaa": {"bbb": {"ccc": [{"file_1": "file.jpg", "file_2": "file.png"}]}}}` var result map[string]map[string]map[string]interface{} json.Unmarshal([]byte(jsonData), &result) // 先将ccc转换为数组类型 cccArray := result["aaa"]["bbb"]["ccc"].([]interface{}) // 取出数组中的第一个对象 files := cccArray[0].(map[string]interface{}) for key, value := range files { fmt.Println(key, value) } }
输出结果
file_1 file.jpg file_2 file.png
内容的提问来源于stack exchange,提问作者sogafo
相关产品推荐
相关产品推荐

