Jus*_*tas 4 java spring spring-boot
最近我已将项目从 Jersey 迁移到 Spring Rest。以前布尔字段被序列化为字符串success: "true",现在它变得不带引号success: true。这不会是一个问题,但旧的应用程序依赖它并且无法反序列化。如何在 Spring Boot 中以字符串形式返回布尔值?有财产spring.jackson.serialization吗?
如果您无权访问此字段,请创建一个为其执行序列化的类:
public class StringBooleanSerializer extends JsonSerializer<Boolean> {
@Override
public void serialize(Boolean bool, JsonGenerator generator, SerializerProvider provider) throws IOException {
generator.writeString(bool ? "true" : "false");
}
}
Run Code Online (Sandbox Code Playgroud)
使用您的对象映射器注册它:
SimpleModule simpleModule = new SimpleModule();
simpleModule.addSerializer(new StringBooleanSerializer());
objectMapper.registerModule(simpleModule);
Run Code Online (Sandbox Code Playgroud)
就是这样。但是,如果您有权访问该字段,则可以执行以下操作:
@JsonSerialize(using=StringBooleanSerializer.class)
private Boolean bool;
Run Code Online (Sandbox Code Playgroud)
如果需要的话,反序列化也是如此。
| 归档时间: |
|
| 查看次数: |
3164 次 |
| 最近记录: |