如何删除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/

10-11 02:34