duansaxf095988 2016-08-11 15:28
浏览 547

验证JSON并显示错误位置

I want to parse and validate (custom) JSON configuration files within Go. I would like to be able to parse the file into a struct and validate that:

  1. no unexpected keys are present in the JSON file (in particular to detect typos)
  2. certain keys are present and have non-empty values

In case the validation fails (or in case of a syntax error), I want to print an error message to the user that explains as detailed as possible where in the file the error happened (e.g. by stating the line number if possible).

The JSON parser built into Go seems to just silently ignore unexpected keys. I also tried using jsonpb (Protobuf) to deserialize the JSON, which returns an error in case of an unexpected key, but does not report the position.

To check for non-empty values, I could use an existing validation library, but I haven't seen any does reports detailed error messages. Alternatively, I could write custom code that validates the data returned by the built-in JSON parser, but it would be nice if there was a generic way.

Is there a simple way to get the desired behaviour?

  • 写回答

1条回答 默认 最新

  • dongwuli5105 2016-08-11 15:34
    关注

    Have you looked at JSON schema?

    JSON Schema describes your JSON data format.

    I believe it is in Draft stage, but a lot of languages have validation libraries. Here's a Go implementation:

    评论

报告相同问题?

悬赏问题

  • ¥20 怎么在stm32门禁成品上增加记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 解riccati方程组