获取Go json unmarshal中的错误字段名称

时间:2014-06-20 10:29:30

标签: json go

我有一些大的json文件,这些文件在字段包含的类型方面略有不同。

{ "a":"1" }

VS

{ "a":1 }

当我解开第二个时,我得到了:

cannot unmarshal number into Go value of type string

然而,由于这些jsons很大,我希望有一个错误的实际字段,所以我可以修复它们。 UnmarshalTypeError不包含Struct的字段类型。

有人知道获取字段名称的方法吗? (没有调试我有很多不同的领域错误)

[编辑] 我知道如何解决类型转换。我需要的是一种方法,以查看我需要将哪些字段应用于转换。

1 个答案:

答案 0 :(得分:3)

简短的回答是你不能。

但是,要解决您的问题,有多种解决方案:

  • 深入了解json.Unmarshal源代码以更改其工作并添加所需信息:将函数复制到本地软件包,进行编辑并使用此函数
  • 使用第三方工具为您提供帮助,例如与JSON Schema兼容的JSON验证器:此处为online example,可能有一些更适合的工具