在这种情况下,您有一个包含浮点数的 JSON 字符串,需要将其解码为 Golang 结构体。由于传入的浮点数字符串表示形式与结构中的 float64 类型不匹配,首次解码尝试失败。
要解决此问题,需要指示 JSON 解码器将字符串值解释为一个 float64。这可以通过将 ,string 标签添加到结构定义中的 Price 字段来实现:
type Product struct { Name string Price float64 `json:",string"` }
通过此修改,解码器将成功将字符串表示形式转换为 float64 值。更新后的 Golang 代码:
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) } }
运行此更新后的代码现在将输出所需的结果:
{Name:Galaxy Nexus Price:3460}
以上是如何在 Go 中处理 JSON 字符串到 Float64 的转换?的详细内容。更多信息请关注PHP中文网其他相关文章!