gpt4 book ai didi

json - Golang Json Unmarshal 数字与指数

转载 作者:IT王子 更新时间:2023-10-29 02:14:47 35 4
gpt4 key购买 nike

当将 json 字符串解码到结构中时,我遇到了问题,该结构是带有指数的数值将始终为 0。请检查以下代码:

package main

import (
"encoding/json"
"fmt"
"os"
)

type Person struct {
Id uint64 `json:"id"`
Name string `json:"name"`
}

func main() {

//Create the Json string
var b = []byte(`{"id": 1.2E+8, "Name": "Fernando"}`)

//Marshal the json to a proper struct
var f Person
json.Unmarshal(b, &f)

//print the person
fmt.Println(f)

//unmarshal the struct to json
result, _ := json.Marshal(f)

//print the json
os.Stdout.Write(result)
}

运行是:

{0 Fernando}

有什么办法可以让它发挥作用吗?由于指数是标准的 JSON。似乎 golang 错误地解释了它。

Playground 在这里:http://play.golang.org/p/8owgjX9y0m

最佳答案

只需将 id 字段的类型更改为 float64。

package main
import (
"encoding/json"
"fmt"
"os"
)

type Person struct {
Id float64 `json:"id"`
Name string `json:"name"`
}

func main() {

//Create the Json string
var b = []byte(`{"id": 1.2E+8, "Name": "Fernando"}`)

//Marshal the json to a proper struct
var f Person
json.Unmarshal(b, &f)

//print the person
fmt.Println(f)

//unmarshal the struct to json
result, _ := json.Marshal(f)

//print the json
os.Stdout.Write(result)
}

关于json - Golang Json Unmarshal 数字与指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36381997/

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