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

如何在 Go 中处理 JSON 字符串到 Float64 的转换?

Susan Sarandon
Susan Sarandon原创
2025-01-04 21:22:43863浏览

How to Handle JSON String to Float64 Conversion in Go?

使用 Float64 类型转换解码 JSON

在这种情况下,您有一个包含浮点数的 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn