为地图和对象引用生成更快的XML模式

时间:2014-02-07 17:36:49

标签: jackson fasterxml

我在使用FasterXML生成JSON Schema文件时遇到问题。 文件输出只显示

    {li> object输入Map<String, String> {li> null类型为OtherBean
  

{       “type”:“object”,       “properties”:{           “beanId”:{               “type”:“整数”           },           “beanName”:{               “type”:“string”           },           “beanMap”:{               “type”:“object”           },           “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);

    }
}

MyBeans:

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;
    }
}

OtherBean:

public class OtherBean {

}

1 个答案:

答案 0 :(得分:1)

没有直接回答你的问题,但Schema Generation正在转向一个单独的模块:

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

它将具有更好的功能,并且可以比旧的内置生成更快地发展。 如果可能的话,尝试使用它。对于生成问题,你可以针对此提交错误。