js := `{"int":1,"string":"qwertyuiop","float":1.111}`
jsm := make(map[string]interface{})
err := json.Unmarshal([]byte(js), &jsm)
数值类型 会全部解析为 float64类型 而不会按照原来的整数int 类型
如上述代码中 key为 int 和 float 等数值类型的值,都将解析为 float64。
fork,v := range jsm {
switch vType := v (type) {
case int: fmt.Println("int",k,strconv.Itoa(vType))
case string:fmt.Println("string",k,vType)
case float32 :fmt.Println("float32",k,strconv.FormatFloat(float64(vType),'f',2,64))
case float64:fmt.Println("float64",k,strconv.FormatFloat(vType,'f',2,64))
}
}
输出为:
string string qwertyuiop
float64 float 1.11
float64 int 1.00