首页 > 后端开发 > Golang > 正文

如何将 JSON 字符串解组为 Int64 Go 值?

Barbara Streisand
发布: 2024-11-14 17:16:02
原创
445 人浏览过

How to Unmarshal JSON Strings into Int64 Go Values?

将 JSON 字符串解组为 Int64 Go 值

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板