Генерация схемы FasterXML для карт и ссылок на объекты

У меня возникла проблема с созданием файла схемы JSON с помощью FasterXML. Вывод файла просто показывает

  • object тип для Map<String, String>
  • null тип для OtherBean

{ "type": "object", "properties": { "beanId": { "type": "integer" }, "beanName": { "type": "string" }, "beanMap": { "type" : "объект" }, "otherBean": null } }

Мой класс генерации схемы

import java.io.File;
import java.io.IOException;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.jsonschema.JsonSchema;

public class Main {

    public static void main(String[] args) throws IOException {

        ObjectMapper MAPPER = new ObjectMapper();

        JsonSchema jsonSchema = MAPPER.generateJsonSchema(MyBean.class);

        MAPPER.writeValue(new File("MyBeanSchema.json"), jsonSchema);

    }
}

Мои бобы:

import java.util.Map;

public class MyBean {

    private Integer beanId;
    private String beanName;
    private Map<String, String> beanMap;
    private OtherBean otherBean;

    public MyBean() {
    }

    public Integer getBeanId() {
        return beanId;
    }

    public void setBeanId(Integer beanId) {
        this.beanId = beanId;
    }

    public String getBeanName() {
        return beanName;
    }

    public void setBeanName(String beanName) {
        this.beanName = beanName;
    }

    public Map<String, String> getBeanMap() {
        return beanMap;
    }

    public void setBeanMap(Map<String, String> beanMap) {
        this.beanMap = beanMap;
    }

    public OtherBean getOtherBean() {
        return otherBean;
    }

    public void setOtherBean(OtherBean otherBean) {
        this.otherBean = otherBean;
    }
}

Другой компонент:

public class OtherBean {

}

person DarVar    schedule 07.02.2014    source источник


Ответы (1)


Не отвечая напрямую на ваш вопрос, но генерация схемы переходит в отдельный модуль:

https://github.com/FasterXML/jackson-module-jsonSchema/

который будет иметь лучшую функциональность и может развиваться быстрее, чем старое встроенное поколение. Так что, если возможно, попробуйте использовать это. А потом на это можно баги запилить, на проблемы с генерацией.

person StaxMan    schedule 07.02.2014