首页 > 后端开发 > Golang > 如何在 JSON 解组中处理 Int64 字段的字符串输入?

如何在 JSON 解组中处理 Int64 字段的字符串输入?

Susan Sarandon
发布: 2024-11-15 03:17:02
原创
279 人浏览过

How to Handle String Input for Int64 Fields in JSON Unmarshaling?

在 JSON 解组中处理 Int64 字段的字符串输入

将 JSON 数据解组为 Go 值有时会遇到挑战,特别是在遇到以下字符串表示形式时积分值。本文探讨了在使用字符串编码的整数字段解组 JSON 数据时出现错误“json: 无法将字符串解组为 int64 类型的 Go 值”的解决方案。

问题陈述

考虑以下代表调查响应的 Go 结构:

type tySurvey struct {
    Id     int64            `json:"id,omitempty"`
    Name   string           `json:"name,omitempty"`
}
登录后复制

在此例如,id 字段定义为 int64。将 tySurvey 序列化为 JSON 并将其传输以供客户端操作后,客户端会更新名称字段。然而,它在数据传输过程中无意中将 id 字段编码为字符串。

在服务器上接收到修改后的 JSON 数据后,原始 tySurvey 结构体被解组,导致错误:“json: 无法将字符串解组为Go 类型的值int64."

解决方案

解决方案在于通过将 ,string 附加到类型定义来修改 JSON 字段标签。这指示 json 解组器接受整数值的字符串表示形式:

type tySurvey struct {
   Id   int64  `json:"id,string,omitempty"`
   Name string `json:"name,omitempty"`
}
登录后复制

,string 选项允许在解组期间将字符串编码的整数值无缝转换为相应的 Go 值。

其他注意事项

指定时,omitempty字符串编码的整数值,重要的是要注意空字符串无法解码。此限制确保仅在编码期间使用 omitempty。

结论

将 ,string 附加到 JSON 字段标记可以轻松解组 Go 中的字符串编码整数值。该技术通过适应可能无意中更改字段类型的客户端数据操作,简化了数据处理并增强了代码的稳健性。

以上是如何在 JSON 解组中处理 Int64 字段的字符串输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

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