通过从 String 到 Float64 的类型转换来解码 JSON
解码包含浮点数的 JSON 字符串时,可能会遇到错误“json:无法将字符串解组为 float64 类型的 Go 值。”当 JSON 解码器尝试自动将数字从字符串转换为 float64 类型时,就会出现此问题。
要解决此问题,您可以使用 ",结构体定义中的“string”标签:
type Product struct { Name string Price float64 `json:",string"` }
通过添加此标签,JSON 解码器会将“price”字段视为字符串编码的 float64,从而允许在
package main import ( "encoding/json" "fmt" ) type Product struct { Name string Price float64 `json:",string"` } func main() { s := `{"name":"Galaxy Nexus", "price":"3460.00"}` var pro Product err := json.Unmarshal([]byte(s), &pro) if err == nil { fmt.Printf("%+v\n", pro) } else { fmt.Println(err) fmt.Printf("%+v\n", pro) } }
通过此修改,程序现在可以成功解码 JSON 字符串,并将“price”字段正确转换为 float64 类型。
以上是解码 JSON 时如何处理'json:无法将字符串解组为 float64 类型的 Go 值”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!