Порядок полей схемы Json - PullRequest
0 голосов
/ 05 ноября 2018

Я знаю, что поля, перечисленные в объекте схемы json, не имеют определенного порядка, поскольку они не являются массивом, но я ищу способ отображать их в правильном порядке в пользовательском интерфейсе моего приложения.

Обходные пути, которые я обнаружил до сих пор, включают такие вещи, как использование другого сериализатора или даже жесткое кодирование числа в имени поля.

Я хотел бы предложить что-то, что работает с моими текущими настройками. Hibernate, Spring Boot и интерфейс приложения-реагирования. учитывая этот запрос GET:

/profile/personEntities 

с заголовком: Принять: application/schema+json

Я получу это:

{
    "title": "Person entity",
    "properties": {
        "birthday": {
            "title": "Birthday",
            "readOnly": false,
            "type": "string",
            "format": "date-time"
        },
        "lastName": {
            "title": "Last name",
            "readOnly": false,
            "type": "string"
        },
        "address": {
            "title": "Address",
            "readOnly": false,
            "type": "string",
            "format": "uri"
        },
        "firstName": {
            "title": "First name",
            "readOnly": false,
            "type": "string"
        },
        "email": {
            "title": "Email",
            "readOnly": false,
            "type": "string"
        },
        "cellPhone": {
            "title": "Cell phone",
            "readOnly": false,
            "type": "string"
        }
    },
    "requiredProperties": [
        "firstName",
        "lastName"
    ],
    "definitions": {},
    "type": "object",
    "$schema": "http://json-schema.org/draft-04/schema#"
}

Я попытался добавить @JsonProperty(index=2) в поле, но ничего не изменилось.

Большое спасибо за любые советы.

1 Ответ

0 голосов
/ 06 ноября 2018

Если вы используете Джексона для обработки вашей сериализации / десериализации, вы можете использовать @JsonPropertyOrder - из их документов:

// ensure that "id" and "name" are output before other properties
@JsonPropertyOrder({ "id", "name" })

// order any properties that don't have explicit setting using alphabetic order
@JsonPropertyOrder(alphabetic=true)

См .: http://fasterxml.github.io/jackson-annotations/javadoc/2.3.0/com/fasterxml/jackson/annotation/JsonPropertyOrder.html

...