首页 > 后端开发 > Golang > 解码 JSON 时如何处理'json:无法将字符串解组为 float64 类型的 Go 值”错误?

解码 JSON 时如何处理'json:无法将字符串解组为 float64 类型的 Go 值”错误?

Barbara Streisand
发布: 2024-12-31 14:15:10
原创
553 人浏览过

How to Handle

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

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