gpt4 book ai didi

json - 编码 jSON 大整数变成 float

转载 作者:IT王子 更新时间:2023-10-29 02:05:25 26 4
gpt4 key购买 nike

我有这条数据:

productID, err := products.Insert(map[string]interface{}{
"Properties": map[string]interface{}{
strconv.Itoa(propertyNameID): map[string]string{
"en": "Jeans Jersey",
"nl": "Broek Jersey",
},
strconv.Itoa(propertyColorID): propertyOptionRedID,
},
"Type": productTypeID,
"Propertyset": propertysetID,
"Active": true,
"EAN13": "1234567890123"})

所有***ID 变量都是int 类型。可悲的是,当我做一个普通的编码(marshal)时:

{  
"Active":true,
"EAN13":"1234567890123",
"Properties":{
"2286408386526632249":{
"en":"Jeans Jersey",
"nl":"Broek Jersey"
},
"4750062295175300168":7.908474319828591e+18
},
"Propertyset":8.882218269088507e+18,
"Type":7.185126253999425e+18
}

...一些整数被转换成float类型的幂。

Itoa 仍然只是一些测试,因为编码器无法执行 map[int]interface{}(索引值为整数的列表)。我只是不明白为什么 int 值会更改为它们的“显示”值,而不是它们的纯值。

更新:我尝试使用 map[string]int 和只有一个条目的“属性”。结果还是一样:(

最佳答案

您可以将 int64 编码为 json 中的字符串,以避免使用 string 标记转换为 float64

type T struct {
Val int64 `json:"val,string"`
}
t := T{Val: math.MaxInt64}
j, _ := json.Marshal(t)
fmt.Println(string(j))
// {"val":"9223372036854775807"}

关于json - 编码 jSON 大整数变成 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29241443/

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