直接说结论:json里的数字会被优先解析成 float
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| jsonData := `{ "stringKey": "Hello, world", "intKey": 42, "floatKey": 3.14159 }`
var data map[string]interface{} if err := json.Unmarshal([]byte(jsonData), &data); err != nil { fmt.Println("JSON 解析错误:", err) return }
fmt.Println("stringKey:", data["stringKey"].(string)) fmt.Println("intKey:", data["intKey"].(int)) fmt.Println("floatKey:", data["floatKey"].(float64))
|
42 不能被断言成 int,也会被断言成 float