Я использую Gson
для сериализации/десериализации java-объектов для json. Я хочу отобразить его в UI
и нужна схема, чтобы сделать лучшее описание. Это позволит мне редактировать объекты и добавлять больше данных, чем есть на самом деле.
Может ли Gson
предоставить схему json?
Имеет ли какая-либо другая инфраструктура такая возможность?Создайте схему JSON из класса Java
ответ
В библиотеке 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"
}
}
}
}
}
}
У вас есть клавиши типа «2» в объекте «id»! Правильно ли это? Не могли бы вы объяснить? Спасибо – thermz
Я не уверен, почему у нас эти два типа. Я должен проверить. У вас есть аналогичный результат в этом случае? Почему вы обновили мой ответ? Я поместил схему, которую я получил от «SchemaFactoryWrapper». –
Тогда это огромная ошибка! В стандарте JSON Schema указывается, что одно свойство может иметь ** несколько типов **, но не таким образом! Это правильный: * "type": ["number", "integer"] *. Имея 2 ключа в одном JSON против каждого стандарта! Ключи уникальны. Для получения дополнительной информации: http://www.jsonschema.net/ – thermz
Посмотрите JSONschema4-mapper проекта. При следующей установке:
SchemaMapper schemaMapper = new SchemaMapper();
JSONObject jsonObject = schemaMapper.toJsonSchema4(Entity.class, true);
System.out.println(jsonObject.toString(4));
вы получаете следующие JSON-схемы для классов, указанных в Michal Ziober-х answer to this question:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"additionalProperties": false,
"type": "object",
"definitions": {
"Profile": {
"additionalProperties": false,
"type": "object",
"properties": {
"name": {"type": "string"},
"value": {"type": "string"}
}
},
"long": {
"maximum": 9223372036854775807,
"type": "integer",
"minimum": -9223372036854775808
}
},
"properties": {
"profiles": {
"type": "array",
"items": {"$ref": "#/definitions/Profile"}
},
"id": {"$ref": "#/definitions/long"}
}
}
Отличная библиотека, просто хочу, чтобы я работал с JDK 7, а не 8 в качестве базовой линии. Помните об этом, если мы когда-нибудь перейдем к JDK8. – Joe
- 1. Генерирование JSON-схему из класса Java
- 2. Создайте пользовательскую схему JSON в JAVA с помощью Jackson
- 3. Создайте блок-схему html из json или xml
- 4. Создайте объект JSON из класса в Swift
- 5. Java: Создайте новый массив из класса
- 6. Создайте WSDL из java-класса \ source
- 7. Создайте массив из имени класса
- 8. Как создать json-схему из mongodb в java?
- 9. Создайте массив Java из JSON по адресу
- 10. Создайте Json-файл из кода Java
- 11. Как сгенерировать JSON-схему из аннотированного класса JAXB?
- 12. Сгенерировать схему JSON из данных JSON Programmically
- 13. Создайте схему схемы свечей с представлением схемы json
- 14. Создайте свойство из класса
- 15. Сгенерировать XML-схему из класса Java (или наоборот)
- 16. Ссылка на схему JSON
- 17. Создайте меню из JSON
- 18. как выполнить JSON-схему валидатор в Java
- 19. Создайте схему JSON из образцов данных JSON в C# с помощью NJsonSchema
- 20. IBM U2 (UniVerse 10.2) - Создайте схему - Как
- 21. Как преобразовать схему JSON в схему mongoose
- 22. Создайте схему из созданных QueryDSL бобов и запросов
- 23. Как создать схему XSD из класса?
- 24. Как создать схему мангуста из класса (функции)
- 25. Как преобразовать образец JSON в схему JSON в Java
- 26. Из .json файла в схему мангуста?
- 27. генерирует схему AVRO из документа JSON
- 28. Создать схему Json из XML-схемы (XSD)
- 29. Создайте экземпляр класса из строки
- 30. Создайте JSON из ключей основного файла JSON
Что бы вы хотели отобразить в интерфейсе? Я действительно не понимаю, в чем проблема. 'gson' может преобразовывать Java-классы в JSON-формат, вот что делает' gson'. – user1983983