json模式字段顺序

ngynwnxp  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(397)

我知道json模式对象中列出的字段没有定义的顺序,因为它们不是数组,但我正在寻找一种方法,以便能够在我的应用程序ui中以正确的顺序显示它们。
到目前为止,我发现的解决方法包括使用不同的序列化程序,甚至将数字硬编码到字段名中。
我想拿出一些与我目前的设置工作。hibernate、spring boot和react应用程序前端。给定此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) 但一切都没变。
谢谢你给我的小费。

3xiyfsfu

3xiyfsfu1#

如果您使用jackson来处理序列化/反序列化,您可以使用 @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

相关问题