java - Pojo 到 Json 架构

标签 java json jackson jsonschema

我有下面的 Json 字符串

{
"name": "Mr Xyz"
}

上述 JSON 的 Java 模型类如下所示

@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"name"
})
public class Test {

@JsonProperty("name")
@JsonPropertyDescription("Non Zero Length String")
@Size(min = 1)
@NotNull
private String name;

以下 Test.class Java 对象的 Jackson API 生成以下 json 模式

{
    "$schema": "http://json-schema.org/draft-07/schema#",
    "title": "Test",
    "type": "object",
    "additionalProperties": false,
    "properties": {
        "name": {
            "type": "string",
            "minLength": 1,
            "description": "Non Zero Length String"
        }
    },
    "required": [
        "name"
    ]
}

我的问题是如何更改我的 Java pojo 对象,以便它可以生成如下所示的模式

{
    "$id": "test id",
    "$schema": "http://json-schema.org/draft-07/schema",
    "title": "Test title",
    "description": "test description",
    "type": "object",
    "properties": {
        "name": {
            "$ref": "#/definitions/d_NonZeroLengthString"
        }
    },
    "definitions": {
        "d_NonZeroLengthString": {
            "description": "Non Zero Length String",
            "type": "string",
            "minLength": 1
        }
    }
}

最佳答案

尝试使用https://github.com/mbknor/mbknor-jackson-jsonSchema , 它创建“$ref”和“定义”

关于java - Pojo 到 Json 架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64348860/

相关文章:

java - 如何在 java 中使用 selenium webdriver 为 chrome 设置默认下载位置属性?

java - 使用 Intellij Idea 捕获 Spring-boot 应用程序的外部 jar 停止事件

javascript - 将 JSON 响应状态发布到服务器

php - JSON/PHP 未正确解析

java - jackson 注释被忽略

java - jackson JSON 库中的 ALLOW_UNQUOTED_FIELD_NAMES

java - org.hibernate.hql.internal.ast.QuerySyntaxException : table is not mapped [from table]

java - spring + GAE对spring容器的不正确初始化

ios - 使用 Swift 解析 Json

java - Jackson:用于反序列化内部集合的对象映射器注释