Java

java jsonschema 如何处理错误

小樊
81
2024-11-30 01:13:14
栏目: 编程语言

在Java中,使用jsonschema库处理JSON Schema验证错误的方法如下:

  1. 首先,确保已将jsonschema库添加到项目依赖中。如果使用Maven,可以在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>com.github.fge</groupId>
    <artifactId>jsonschema-core</artifactId>
    <version>1.12.2</version>
</dependency>
  1. 然后,编写一个方法来验证JSON对象是否符合给定的Schema:
import com.github.fge.jsonschema.core.exceptions.ProcessingException;
import com.github.fge.jsonschema.core.exceptions.ValidationMessageException;
import com.github.fge.jsonschema.core.json.JsonNode;
import com.github.fge.jsonschema.core.json.JsonSchema;
import com.github.fge.jsonschema.core.json.JsonSchemaFactory;
import com.github.fge.jsonschema.core.json.JsonValue;

import java.io.IOException;

public class JsonSchemaValidator {

    public static void main(String[] args) {
        String schemaJson = "{ \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\" }, \"age\": { \"type\": \"integer\" } } }";
        String json = "{ \"name\": \"John\", \"age\": 30 }";

        try {
            validateJson(schemaJson, json);
            System.out.println("JSON is valid.");
        } catch (ProcessingException | ValidationMessageException e) {
            System.out.println("JSON is invalid: " + e.getMessage());
        }
    }

    public static void validateJson(String schemaJson, String json) throws ProcessingException, ValidationMessageException {
        JsonSchemaFactory factory = JsonSchemaFactory.getInstance();
        JsonSchema schema = factory.getJsonSchema(JsonValue.readTree(schemaJson));
        JsonNode jsonNode = JsonValue.readTree(json);
        schema.validate(jsonNode);
    }
}

在这个示例中,我们首先定义了一个JSON Schema字符串schemaJson,然后定义了一个要验证的JSON字符串jsonvalidateJson方法接受这两个参数,并使用jsonschema库进行验证。如果验证成功,将输出"JSON is valid.",否则将抛出异常并输出错误信息。

注意:这个示例使用了com.github.fge.jsonschema库,这是一个流行的Java JSON Schema库。还有其他库,如org.everit.json.schema,也可以用于处理JSON Schema验证错误。

0
看了该问题的人还看了