gpt4 book ai didi

json - 如何使用从字符串转换为 float64 的类型解码 JSON

转载 作者:IT老高 更新时间:2023-10-28 12:43:47 38 4
gpt4 key购买 nike

我需要解码带有 float 的 JSON 字符串,例如:

{"name":"Galaxy Nexus", "price":"3460.00"}

我使用下面的 Golang 代码:

package main

import (
"encoding/json"
"fmt"
)

type Product struct {
Name string
Price float64
}

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: cannot unmarshal string into Go value of type float64
{Name:Galaxy Nexus Price:0}

我想知道如何用convert类型解码JSON字符串。

最佳答案

答案要简单得多。只需添加告诉 JSON 解释器它是带有 ,string 的字符串编码 float64(请注意,我只更改了 Price 定义):

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 - 如何使用从字符串转换为 float64 的类型解码 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9452897/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com