我正在使用文件格式。有效地,格式是具有特定结构的JSON。该格式带有验证器,非常棒,并提供有用的错误消息。但是,当错误导致输入为无效JSON时,验证程序将失败,并提供非常差的错误消息。
我可以将它与普通的JSON验证器一起使用,但我真正想做的是能够将JSON结构放入工具中,并从另一端获取(python)解析器。显然有各种方法可以做到这一点,我的问题是:有没有什么方法可以定义JSON格式,让我避免为JSON本身编写解析器?
用例是这样的:我想为格式构建一个“正确的”验证器,以便用户可以上传文件并进行检查。我可以写BNF,但是我想写一个BNF用于理解它是BNF-in-JSON的工具。
答案 0 :(得分:1)
断言JSON文件遵循特定格式的适当方法是使用JSON schema。这在许多语言中都受支持,并且在Python中具有良好的库。还有一些有用的在线工具可用于生成,验证和测试架构。
答案 1 :(得分:0)
如果我理解正确,验证器使用json库来读取文件,然后进行一些额外的检查。这听起来对我来说是个好设计;为什么重新发明轮子?如果无效的JSON提供了过于神秘的错误消息,那么如何在> test = [[["bar"]]]
[Array[1]]
> foo["bar"] = 5
5
> foo[test]
5
块中捕获它们并按照自己的方式制定错误消息呢?除了异常消息之外,您还可以通过检查异常来恢复有关错误的大量信息。
如果你可以更具体地说明你发现什么样的错误信息没有帮助,你想要看到什么(用合适的输入来触发错误),也许有人可以解释如何。