例如,我正在使用 golang 对 JSON 进行编组和解组,当我想对数字字段进行处理时,golang 会将其转换为浮点数而不是长数字。
我有以下 JSON:
{
"id": 12423434,
"Name": "Fernando"
}
在marshal它到地图并unmarshal再次到 json 字符串之后,我得到:
{
"id":1.2423434e+07,
"Name":"Fernando"
}
如您所见,该"id"字段采用浮点表示法。
我正在使用的代码如下:
package main
import (
"encoding/json"
"fmt"
"os"
)
func main() {
//Create the Json string
var b = []byte(`
{
"id": 12423434,
"Name": "Fernando"
}
`)
//Marshal the json to a map
var f interface{}
json.Unmarshal(b, &f)
m := f.(map[string]interface{})
//print the map
fmt.Println(m)
//unmarshal the map to json
result,_:= json.Marshal(m)
//print the json
os.Stdout.Write(result)
}
它打印:
map[id:1.2423434e+07 Name:Fernando]
{"Name":"Fernando","id":1.2423434e+07}
似乎是marshal地图的第一个生成 FP。我怎样才能把它修好?
这是goland playground中程序的链接:http ://play.golang.org/p/RRJ6uU4Uw-
12345678_0001
相关分类