【发布时间】:2021-08-25 20:20:03
【问题描述】:
我想在 Go 中解析和验证(自定义)JSON 配置文件。我希望能够将文件解析为结构并验证:
- JSON 文件中不存在意外的键(尤其是用于检测拼写错误)
- 某些键存在且具有非空值
如果验证失败(或语法错误),我想向用户打印一条错误消息,尽可能详细地解释文件中错误发生的位置(例如,尽可能说明行号)。
Go 中内置的 JSON 解析器似乎只是默默地忽略了意外的键。我还尝试使用 jsonpb (Protobuf) 对 JSON 进行反序列化,如果出现意外键,它会返回错误,但不报告位置。
要检查非空值,我可以使用现有的验证库,但我没有看到任何报告详细错误消息的库。或者,我可以编写自定义代码来验证内置 JSON 解析器返回的数据,但如果有一个通用的方法会很好。
有没有一种简单的方法来获得所需的行为?
【问题讨论】:
标签: json validation go