我Gson用来将Java对象序列化/反序列化为json。我想在中显示它UI,并且需要一个架构来做出更好的描述。这将允许我编辑对象并添加比实际更多的数据。 可以Gson提供json模式吗? 是否有其他框架具有该功能?
Gson
UI
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" } } } } } }