Как сгенерировать json данные из Json Схемы программно в Java - PullRequest
0 голосов
/ 07 марта 2020

Я пытаюсь создать Body-параметр (JSON) для моего POST Api, который является JSON запросом. Все, что у меня есть, это JSON схема. Я пытаюсь составить список различных тестовых данных JSON, охватывающих положительные и отрицательные потоки для него.

Есть ли возможность сгенерировать / создать JSON programmati данных c с использованием Java? , Я приложил небольшую Json схему (только для понимания цели), но моя настоящая схема более сложна с большим количеством массивов и вложенных Json.

Моя Json Схема:

{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "http://example.com/example.json",
"type": "object",
"title": "The Root Schema",
"description": "The root schema comprises the entire JSON document.",
"required": [
    "FirstName",
    "LastName",
    "Age",
    "Interest"
],
"properties": {
    "FirstName": {
        "$id": "#/properties/FirstName",
        "type": "string",
        "title": "The Firstname Schema",
        "description": "An explanation about the purpose of this instance.",
        "default": "",
        "examples": [
            "Vijay"
        ]
    },
    "LastName": {
        "$id": "#/properties/LastName",
        "type": "string",
        "title": "The Lastname Schema",
        "description": "An explanation about the purpose of this instance.",
        "default": "",
        "examples": [
            "Karthik"
        ]
    },
    "Age": {
        "$id": "#/properties/Age",
        "type": "integer",
        "title": "The Age Schema",
        "description": "An explanation about the purpose of this instance.",
        "default": 0,
        "examples": [
            30
        ]
    },
    "Interest": {
        "$id": "#/properties/Interest",
        "type": "array",
        "title": "The Interest Schema",
        "description": "An explanation about the purpose of this instance.",
        "default": [],
        "items": {
            "$id": "#/properties/Interest/items",
            "type": "string",
            "title": "The Items Schema",
            "description": "An explanation about the purpose of this instance.",
            "default": "",
            "examples": [
                "Food",
                "movie",
                "Learning",
                "VideoGames"
            ]
        }
    }
}

} enter code here

Мои TestData выглядят так:

 {
"FirstName":"Vivi",
"LastName":"Karrri",
"Age":30,
"Interest":["Food","movie","Learning","VideoGames"]
}

Любые предложения, как мы можем достичь этого? Примечание: я использую Springboot и у меня есть полный POJO для объекта запроса

1 Ответ

0 голосов
/ 07 марта 2020

Вы можете создать поддельные java -объекты и затем сопоставить их с JSON.

POJOs

Если у вас уже есть POJO, соответствующие схеме, тогда мы можем пропустить этот шаг. Если нет, для генерации POJO из схемы, например, может быть использована эта библиотека: jsonschema2pojo .

Поддельные объекты

Генерация объекты с поддельными данными можно сделать с помощью специальной библиотеки, некоторые из них перечислены здесь:

Генерация JSON

Это очень просто и может быть сделано с Джексон:

ObjectMapper objectMapper = new ObjectMapper();
ObjectWriter prettyPrinter = objectMapper.writerWithDefaultPrettyPrinter();
String json = prettyPrinter.writeValueAsString(yourFakeObject);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...