Golang 解析 JSON , 用 interface{} 接收后的字段类型
使用 Golang 解析 JSON 格式数据时,若以 interface{} 接收数字成员,则会按照下列规则进行解析:
解析规则
bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null
可以看出,所有的 num 类型的数据都会被解析成 float64
解析函数
func JsonToMap(jsonStr string) map[string]interface{} {
var mapResult map[string]interface{}
err := json.Unmarshal([]byte(jsonStr), &mapResult)
if err != nil {
fmt.Println("JsonToMap err: ", err)
}
return mapResult
}
解决方法
如果类型是 int ,可以用下面的方式转换,其它同理。
data := JsonToMap(jsonStr)
a := int(data["a"].(float64)) // a的值本来是 int 类型的
0
赞
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦