首页 > 后端开发 > Golang > 在 Go 中解码 JSON 时如何处理字符串到 Float64 转换错误?

在 Go 中解码 JSON 时如何处理字符串到 Float64 转换错误?

Barbara Streisand
发布: 2024-12-25 00:39:11
原创
158 人浏览过

How to Handle String-to-Float64 Conversion Errors When Decoding JSON in Go?

通过从 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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板