通过从 String 到 Float64 的类型转换来解码 JSON
在 Golang 中,解码包含浮点数的 JSON 字符串有时会在使用类型时导致错误像float64。下面深入研究该问题并提供解决方案。
考虑以下 JSON 输入:
{"name":"Galaxy Nexus", "price":"3460.00"}
以及相应的 Go 类型:
type Product struct { Name string Price float64 }
解组 JSON使用内置的 json 包可能会产生错误:
json: cannot unmarshal string into Go value of type float64
出现这个错误是因为 JSON Price 字段是一个字符串,而 Go Price 字段是一个 float64。要解决此问题,请通知 JSON 解释器,价格字段是字符串编码的 float64:
type Product struct { Name string Price float64 `json:",string"` }
通过在 json 标签中添加“string”,解释器将在执行期间自动将字符串价格转换为 float64解码。运行修改后的代码现在将产生预期的输出:
{Name:Galaxy Nexus Price:3460}
如果在 JSON 解码期间需要进行类型转换,则使用带有“string”(或其他类型转换说明符)的 json 标签可以提供简单且简单的输出。有效的解决方案。
以上是在 Go 中解码 JSON 时如何处理字符串到 Float64 转换错误?的详细内容。更多信息请关注PHP中文网其他相关文章!