我有一些大的 json 文件,这些文件的字段包含的类型略有不同。
{ "a":"1" }
对比
{ "a":1 }
当我解码第二个时,我得到:
cannot unmarshal number into Go value of type string
但是,由于这些 json 很大,我希望有错误的实际字段,以便我可以修复它们。 UnmarshalTypeError
不包含结构的字段类型。
有人知道获取字段名称的方法吗? (不调试我有很多不同的领域是错误的)
[编辑] 我知道如何解决类型转换。我需要的是一种方法来查看我需要将该转换应用到哪些字段。
最佳答案
简短的回答是你不能。
但是,要解决您的问题,有多种解决方案:
- 深入研究
json.Unmarshal
源代码以更改其工作方式并添加您需要的信息:将函数复制到本地包,进行编辑,然后使用此函数 - 使用第三方工具来帮助您,例如与 JSON Schema 兼容的 JSON 验证器: 这是一个 online example , 可能有一些更适合的工具
关于json - 获取Go json unmarshal中出错的字段名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24325210/