java - 使用 jackson 从 POJO 创建 JSON 模式时,从 JSON 模式中删除 "id"

标签 java json jackson

如何删除 id 字段("id": "urn:jsonschema:org:gradle:Person") 来自使用 Jackson 创建的 JSON 模式?

生成的架构

{
  "type" : "object",
  "id" : "urn:jsonschema:org:gradle:Person",
  "properties" : {
    "name" : {
      "type" : "string"
    }
  }
}

对于 POJO 类(Person.class)

import com.fasterxml.jackson.annotation.JsonProperty;

public class Person {

    @JsonProperty("name")
    private String name;

} 

使用 JSON 架构生成器

import java.io.IOException;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.module.jsonSchema.JsonSchema;
import com.fasterxml.jackson.module.jsonSchema.JsonSchemaGenerator;


public final class GetJsonSchema {
    public static String getJsonSchema2(Class clazz) throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        JsonSchemaGenerator jsonSchemaGenerator = new JsonSchemaGenerator(mapper);
        JsonSchema jsonSchema = jsonSchemaGenerator.generateSchema(clazz);
        return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(jsonSchema);
    }
}

像这样调用

System.out.println(JsonSchema.Create(Person.class));

最佳答案

只需将 id 设置为 null 即可。 例如:

jsonSchema.setId(null);

关于java - 使用 jackson 从 POJO 创建 JSON 模式时,从 JSON 模式中删除 "id",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41114170/

相关文章:

java - testng.xml 无法运行类

java - javac如何自动编译一个类的依赖

java - 如何检查 JTabbedPane 中的选项卡是否处于 Activity 状态?

javascript - 如何发回 json 数据类型

java - Jackson Json 和@JsonAnySetter 的不稳定行为

java - 在 Java 中解析 Java 的最佳方式

javascript - 在 JavaScript 中嵌套的 JSON 对象中的父/子属性之间遍历

python - python dict 到 json 二进制字符串的最快方法

java - 如何使用 Jackson 将对象附加到现有 JSON 文件

java - fastxml jackson 使用 Pojo 创建嵌套 xml