【发布时间】:2017-07-13 08:29:24
【问题描述】:
对于 Jackson,字段上的注释 @JsonProperty("a") 会将其名称序列化为 a。对于 Gson,这将作为 @SerializedName("a") 完成。
注释类的所有序列化字段并使用默认的 Jackson 设置将导致 JSON 响应缩小,这是我们想要实现的。
这显然会混淆响应,因此最好将其设为可选。对于非生产配置文件,缩小应关闭,而生产配置文件应使用缩小版本。
应用程序使用 Spring Boot 2 (REST + Data) 和 Java 8,目前使用 Jackson 进行序列化,但这可能会改变。构建是通过 Maven 完成的。
我们可以为此使用 Spring 或 Maven 配置文件。
猜测:
删除注释并使用基于配置文件的 bean 配置 Jackson / Gson。不确定是否可行。
当前未使用杰克逊注解。我可以从外部模块中加入我自己的实现,并根据配置文件在虚拟和真实之间切换,希望我的不会被自动配置。很脏,可能无法正常工作。
复制响应实体,但这很难看且难以维护。
无论如何,问题是如何使 JSON 缩小基于配置,可切换。
【问题讨论】:
-
您找到解决方案了吗?我想基于 Spring @Profile 有条件地反序列化字段,并想知道相同的解决方案是否可以解决这两个问题?
-
@dan.jones 还没有,不幸的是,这仍然是我面临的问题。
-
这不是这个问题的真正目的。但是您可以使用 Jackson 创建 JSON 视图。您可以尝试通过将其链接到配置文件来告诉控制器要使用哪个视图。