当前位置: 首页 > 知识库问答 >
问题:

用于映射和对象引用的FasterXML模式生成

姜煌
2023-03-14

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

  • 地图的对象类型

{ “类型”: “object”, “属性”: { “beanId”: { “类型”: “整数” }, “beanName”: { “类型”: “字符串” }, “beanMap”: { “类型”: “对象” }, “其他Bean”: 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 {

}

共有1个答案

满元凯
2023-03-14

不是直接回答您的问题,而是模式生成正在转移到一个单独的模块:

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

它将具有更好的功能,并且可以比旧的内置一代发展得更快。所以如果可能的话,请尝试使用它。然后您可以为此提交错误,以解决生成问题。

 类似资料:
  • 使用变压器。toJson()我的json日期如下所示: “createdDate”:{“year”:2017,“month”:“OCTOBER”,“monthValue”:10,“dayOfMonth”:25,“hour”:7,“minute”:57,“second”:36,“nano”:972000000,“dayOfWeek”:“星期三”,“dayOfYear”:298,“年表”:{“cale

  • 假设我有一个Foo对象列表。Foo上有一个属性,我必须使用它从数据源中获取Bar对象。然后我必须将每个bar对象映射回我得到bar的原始Foo对象。 我的尝试如下:

  • 考虑下面两个片段(从这个JSPIF条目): 这里,是一个,是一个普通的老JavaScript对象(),而

  • 首先,我有下面的发票清单。每个列表对象都有一个零件号、一个描述、数量和一个价格。 我将其映射到数量上,并将其排序到数量上,得到以下结果: 但是我如何在上进行映射,以便在我的结果中显示在所显示的数量前面?我不能这样做:

  • 我创建映射如下所示。如何将平面dto对象属性(街道、城市等)映射到域对象中的嵌套地址。当我试着去做的时候,我发现了一个错误: [错误]诊断:返回类型中的属性“Address.PostalCode”未知。@Mapping(来源=“City”,目标=“Address.City”), 还有类...

  • 上一章中我们谈论了如何在Vim中映射按键。我们使用的命令map在normal模式下工作。 如果阅读本章之前你自己已经折腾了,可能会注意到这个映射在visual模式一样工作。 你可以使用nmap、vmap和imap命令分别指定映射仅在normal、visual、insert模式有效。 执行如下命令: :::vim :nmap \ dd 在normal模式下,按下\。Vim会删除当前行。 现在进入V