Skip to content

aillamsun/json_scheam_vaild

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

#json_scheam_vaild

json_scheam_vaild直接通过使用java bean上添加对应类型json scheam注解,自动生成json schema规范,通过验证用户输入的json字符串工具类

###使用说明:

修改com/sung/json/scheam/impl/JacksonSchema.java 反射包名修改为你自己的

###代码如下:[^code]

Class<JSONValidator> clazz = (Class<JSONValidator>) Class.forName("com.sung.json.scheam.impl.validators."+ className);

###使用说明:[^code]

public class Person {

    @JsonNumberSchema(optional = false,minimum = 1,maximum = 200,description = "")//optional = false 必选
    private Integer age;
    //@JsonStringSchema(optional = false,minLength = 1,maxLength = 13)
    @JsonStringSchema(optional = false,pattern = "^(?![0-9]+$)[0-9a-zA-Z-]{1,13}$",description = "^(?![0-9]+$)[0-9a-zA-Z-]{1,13}$&名字前缀,1-13位字符,名称包含只字母、数字和中划线,同时不能由纯数字组成")
    private String name;

    @JsonObjectSchema(optional = true)
    private Address address;

    @JsonArraySchema(optional = true)
    private List<Eyes> eyeses;


    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Address getAddress() {
        return address;
    }

    public void setAddress(Address address) {
        this.address = address;
    }

    public List<Eyes> getEyeses() {
        return eyeses;
    }

    public void setEyeses(List<Eyes> eyeses) {
        this.eyeses = eyeses;
    }
}



public class Main {

    public static void main(String[] args) {

        //test1();

        test2();

        //test3();
    }


    public static void test1(){
        Address address = new Address();
        address.setAddress("成都市");
        Eyes youEye = new Eyes();
        youEye.setEys("右眼");
        Eyes zuoEye = new Eyes();
        zuoEye.setEys("左眼");
        Person person = new Person();
        person.setAddress(address);
        person.setAge(4);
        person.setName("sungang");
        List<Eyes> eyeses = new ArrayList<Eyes>();
        eyeses.add(youEye);
        eyeses.add(zuoEye);
        person.setEyeses(eyeses);



        String personJson = JSON.toJSONString(person);
        System.out.println("JSON->:" + personJson );

        List<String> errors = checkjsonStr(personJson,Person.class);
        if (null != errors){
            for (String err:errors){
                System.out.println(err);
            }
        }
    }


    public static void test2(){
        Address address = new Address();
        address.setAddress("成都市");
        Eyes youEye = new Eyes();
        youEye.setEys("右眼");
        Eyes zuoEye = new Eyes();
        zuoEye.setEys("左眼");
        Person person = new Person();
        person.setAddress(address);
        person.setAge(201);
        //person.setName("sungang");
        List<Eyes> eyeses = new ArrayList<Eyes>();
        eyeses.add(youEye);
        eyeses.add(zuoEye);
        person.setEyeses(eyeses);
        String personJson = JSON.toJSONString(person);
        System.out.println("JSON->:" + personJson );

        List<String> errors = checkjsonStr(personJson,Person.class);
        if (null != errors){
            for (String err:errors){
                System.out.println(err);
            }
        }
    }


    public static void test3(){
        Address address = new Address();
        address.setAddress("成都市");
        Eyes youEye = new Eyes();
        youEye.setEys("右眼");
        Eyes zuoEye = new Eyes();
        zuoEye.setEys("左眼");
        Person person = new Person();
        person.setAddress(address);
        person.setAge(24);
        person.setName("sungangdddddddddddd");
        List<Eyes> eyeses = new ArrayList<Eyes>();
        eyeses.add(youEye);
        eyeses.add(zuoEye);


        person.setEyeses(eyeses);



        String personJson = JSON.toJSONString(person);
        System.out.println("JSON->:" + personJson );

        List<String> errors = checkjsonStr(personJson,Person.class);
        if (null != errors){
            for (String err:errors){
                System.out.println(err);
            }
        }
    }


    private static List<String> checkjsonStr(String jsonData,Class<?> clazz){
        ObjectMapper mapper = new ObjectMapper();
        JsonNode schemaNode = null;
        List<String> errorsMsg = null;
        try {
            String jsonScheam = JsonSchemaGenerator.generateSchema(clazz);
            System.out.println("JSON Scheam ->:" + jsonScheam );
            schemaNode = mapper.readTree(jsonScheam);
            JacksonSchema jschema = new JacksonSchema(mapper, schemaNode);
            errorsMsg = jschema.validate(jsonData);
            if (null != errorsMsg && errorsMsg.size() == 0) {
            } else {
            }
        } catch (IOException e) {
        }
        return errorsMsg;
    }
}

Releases

No releases published

Packages

No packages published

Languages