Go 程序员在尝试解组 JSON 时经常遇到错误消息“json: 无法将字符串解组为 int64 类型的 Go 值”数据。当 int64 类型的 Go 结构体字段对应的 JSON 字段包含字符串值时,会发生此错误。
考虑以下 Go 结构体:
type Survey struct { Id int64 `json:"id,omitempty"` Name string `json:"name,omitempty"` }
如果您将此结构编组为 JSON 并修改 JavaScript 客户端中的“id”字段,它可能会发送如下 JSON 字符串:
{"id": "1"}
其中“id”字段现在是一个字符串。
当您尝试将此 JSON 字符串解组到 Go 结构中时,您将遇到上述错误。
要处理这种情况,您可以在中指定 ,string 选项您的 JSON 标记,如下所示:
type Survey struct { Id int64 `json:"id,string,omitempty"` Name string `json:"name,omitempty"` }
即使 JSON 值是字符串,这也允许将“id”字段解组为 int64。
需要注意的是,为字符串标记字段指定 omitEmpty 只会影响编组过程,而不影响解组过程。这意味着您无法将空字符串解组到 int64 字段中,即使它带有 ,string,omitempty 标记。
以上是如何将 JSON 字符串解组为 Int64 Go 值?的详细内容。更多信息请关注PHP中文网其他相关文章!