在Avro架构中使用Map进行字段排序

时间:2018-12-12 11:21:21

标签: jackson schema avro

是否可以使Avro模式中的地图中的字段具有确定的顺序。我尝试在JsonPropertyOrder(alphabetical=true)中使用avdl批注,但它似乎对地图中的字段没有影响。

PS。我并不是说要根据某个字段对记录进行排序。打印具有五个字段的地图的示例预期输出应为

            "params": {
                "map": {
                    "a_param": {
                        "int": 10
                    },
                    "b_param": {
                        "int": 10
                    },
                    "c_param": {
                        "int": 10
                    },
                    "d_param": {
                        "int": 10
                    },
                    "e_param": {
                        "int": 100
                    }
                }
            }

即地图中的所有字段均按字母顺序排序

1 个答案:

答案 0 :(得分:0)

我在标准中看不到任何明确定义的机制,可以满足您的需求。如果预先知道所有可能的映射键,则可以考虑将映射更改为记录(定义了字段顺序),并使其字段类型成为[“ null”,“ int”]的并集类型缺少值。

如果您确实需要自定义JSON的外观,则Avro模式可能是错误的放置位置。我不知道在哪里或如何使用输出,或者我会提出建议。