java – 使用JSONAssert和正则表达式进行JSON验证

我在一个使用REST接口的开源项目中工作.为了验证(匹配实际响应与预期)我们在JUnit中的rest接口,我们想使用
JSONAssert. (
https://github.com/skyscreamer/JSONassert).但我的用法有问题.帮助解决它.

Expected JSON:
{
"objectId": "[^\\s]",
"protocol": "[^\\s]",
"hostName": "[^\\s]",
"port": "[^\\s]",
"commParams": "[^\\s]"
}

备注:objectId / protocol / hostName / port / commParams可以是任何内容,但不应为空

Actual JSON:
{
"objectId": "controller2",
"protocol": "ftp",
"hostName": "sdnorchestrator",
"port": "21",
"commParams": "username:tomcat, password:tomdog"
}

问题1:JSON Assert的哪个界面,我需要用来解决上述问题:下面一个?

JSONAssert.assertEquals("Expected JSON", "Actual JSON" new CustomComparator(
    JSONCompareMode.LENIENT_ORDER, new Customization(PREFIX, new        RegularExpressionValueMatcher<Object>())));

问题2:这里的PREFIX应该是什么?(我试过“”,“.,”.“但没有成功)

针对上述问题的任何其他建议(除了JSONAssert之外)也是受欢迎的.

最佳答案 我找到了更好的替代方案.使用JsonSchema验证器可以解决大部分问题(
http://json-schema.org/).在预期响应中编写json模式并使用json验证器jar对其进行验证. (json-schema / json-schema-validator-2.0.1.jar.zip(166 k))

点赞