【发布时间】:2022-01-04 19:54:47
【问题描述】:
同事们!我正在尝试使用 jsonSchema 验证输入对象(Json 作为字符串)。但我对下一条消息有疑问:com.networknt.schema.JsonSchemaException: java.lang.UnsupportedOperationException: No proper validator for id。
我的架构是这样的:
```
{
"type" : "object",
"id" : "urn:jsonschema:x:x:x:x:x:x:x:x:Class_name",
"properties" : {
///objects
}
}
```
以及尝试验证的代码:
JsonSchemaFactory factory = JsonSchemaFactory.getInstance(VersionFlag.V201909);
InputStream stream=TestClass.class.getResourceAsStream("/file.json");
JsonSchema schema=factory.getSchema(stream);
JsonNode node =mapper.convertToJsonNode(MyObject.builder().build());
Set<ValidationMessage> validationResult = schema.validate(node);
我的目标:如果字段输入不正确,则将所有这些字段的列表输出到响应中。请告诉我我做错了什么,还有其他选项可以验证所有 json 键(不是值)吗?
当前库:
<dependency>
<groupId>com.networknt</groupId>
<artifactId>json-schema-validator</artifactId>
<version>1.0.63</version>
</dependency>
谢谢!
【问题讨论】:
-
我没有使用 JSON 模式的经验,但快速浏览一下 JSON 元模式规范似乎表明没有
"id":验证关键字。这在我看来错位了,它属于"properties": ( ... )吗? -
你好,吉姆!不,这是关于第一个 id ("id" : "urn:jsonschema:x:x:x:x:x:x:x:x:Class_name") 。我现在已经删除了,没有出现错误
标签: java json validation jsonschema json-schema-validator