从Java类创建JSON模式
发布时间:2020-12-14 05:03:13 所属栏目:Java 来源:网络整理
导读:我使用Gson将 java对象序列化/反序列化为json.我想在UI中显示它,并需要一个模式来做一个更好的描述.这将允许我编辑对象并添加比实际更多的数据. Gson可以提供json模式吗? 任何其他框架是否具有此功能? 解决方法 Gson图书馆可能不包含任何这样的功能,但您可
我使用Gson将
java对象序列化/反序列化为json.我想在UI中显示它,并需要一个模式来做一个更好的描述.这将允许我编辑对象并添加比实际更多的数据.
Gson可以提供json模式吗? 任何其他框架是否具有此功能? 解决方法
Gson图书馆可能不包含任何这样的功能,但您可以尝试解决您的问题与
Jackson库和
jackson-module-jsonSchema模块.例如,对于以下类:
class Entity { private Long id; private List<Profile> profiles; // getters/setters } class Profile { private String name; private String value; // getters / setters } 这个程序: import java.io.IOException; import java.util.List; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.module.jsonSchema.JsonSchema; import com.fasterxml.jackson.module.jsonSchema.factories.SchemaFactoryWrapper; public class JacksonProgram { public static void main(String[] args) throws IOException { ObjectMapper mapper = new ObjectMapper(); SchemaFactoryWrapper visitor = new SchemaFactoryWrapper(); mapper.acceptJsonFormatVisitor(Entity.class,visitor); JsonSchema schema = visitor.finalSchema(); System.out.println(mapper.writerWithDefaultPrettyPrinter().writeValueAsString(schema)); } } 在模式下打印: { "type" : "object","properties" : { "id" : { "type" : "integer" },"profiles" : { "type" : "array","items" : { "type" : "object","properties" : { "name" : { "type" : "string" },"value" : { "type" : "string" } } } } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |