无论如何都要验证jsonpath的语法是否正确?

时间:2016-10-14 00:38:58

标签: json validation syntax jsonpath

您好我正在尝试找到一种方法验证用户在评估之前输入的 。我希望使用类似正则表达式的东西来做到这一点,但到目前为止,我找不到任何关于如何验证jsonpath语法的文档/资源。

所有搜索到的关于评估表达式的返回资源。甚至jayway.JsonPath库似乎也没有进行任何语法检查。

是否无法对jsonpath语法进行语法检查?如果有可能,请指出我正确的方向。

3 个答案:

答案 0 :(得分:0)

根据所使用的语言,可以使用try-catch,但是由于您已经说过要查找特定的错误消息,因此应检查该函数是否返回错误消息以进行检查。您也可以尝试通过ashphy来查看this GitHub project。 JSONPath验证程序可能对您有用。

答案 1 :(得分:0)

我试图根据Stefan Goessner的文章和JS实现创建一个JSON路径表达式验证器。

该代码位于jsonpath-syntax-validator的Github存储库中

以下是该库的示例用法。它不会根据JSON对象求值–这是严格的表面检查。但是,我认为在需要评估路径表达式的情况下,Jayway的JsonPath是更好的选择。

JsonPathValidator validator = new BasicJsonPathValidator();
Assert.assertTrue(validator.validate("$.as[?(@.name == 'samba')]"));
Assert.assertFalse(validator.validate("a['??kangaroo   \"A\"'][??(@.name == 'a')].value"));

参考文献:

  1. https://goessner.net/articles/JsonPath/
  2. https://code.google.com/archive/p/jsonpath/

答案 2 :(得分:0)

尝试JsonPath.compile(“ $。path”)