移除"id".使用jackson从POJO创建JSON模式时从JSON模式创建 [英] Removing "id" from JSON schema when creating it from POJO using jackson

查看:54
本文介绍了移除"id".使用jackson从POJO创建JSON模式时从JSON模式创建的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何删除ID字段("id":"urn:jsonschema:org:gradle:Person") 从使用Jackson创建的JSON模式中获取?

How to remove the id field ("id" : "urn:jsonschema:org:gradle:Person") from JSON schema created using Jackson?

生成的模式

{
  "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. 例如:

Just set id to null. E.g.:

jsonSchema.setId(null);

这篇关于移除"id".使用jackson从POJO创建JSON模式时从JSON模式创建的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆