Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在Spring引导Rest响应中将布尔值序列化为字符串?_Java_Spring_Spring Boot - Fatal编程技术网

Java 如何在Spring引导Rest响应中将布尔值序列化为字符串?

Java 如何在Spring引导Rest响应中将布尔值序列化为字符串?,java,spring,spring-boot,Java,Spring,Spring Boot,最近,我将项目从泽西岛迁移到了SpringRest。以前,布尔字段被序列化为类似字符串的success:“true”,现在它没有引号success:true。这不会是一个问题,但旧的应用程序依赖它,无法反序列化。如何在Spring Boot中将布尔值作为字符串返回?任何spring.jackson.serialization属性?编写自定义序列化程序和反序列化程序,并在该布尔字段上使用以下注释: @JsonSerialize和@JsonDeserialize。如果您无权访问此字段,请创建一个将对

最近,我将项目从泽西岛迁移到了SpringRest。以前,布尔字段被序列化为类似字符串的
success:“true”
,现在它没有引号
success:true
。这不会是一个问题,但旧的应用程序依赖它,无法反序列化。如何在Spring Boot中将布尔值作为字符串返回?任何
spring.jackson.serialization
属性?

编写自定义序列化程序和反序列化程序,并在该布尔字段上使用以下注释:


@JsonSerialize和@JsonDeserialize。

如果您无权访问此字段,请创建一个将对其执行序列化的类:

public class StringBooleanSerializer extends JsonSerializer<Boolean> {

    @Override
    public void serialize(Boolean bool, JsonGenerator generator, SerializerProvider provider) throws IOException {
        generator.writeString(bool ? "true" : "false");
    }
}
就这样。但是,如果您有权访问此字段,则可以执行以下操作:

@JsonSerialize(using=StringBooleanSerializer.class)
private Boolean bool;

如果需要,反序列化也是一样的。

为什么不直接使用Boolean.toString?直到我为基本布尔添加了序列化程序,它才起作用。我已经用完整的config.simpleModule.addSerializer(Boolean.class,新的StringBooleanSerializer())编辑了您的答案;simpleModule.addSerializer(boolean.class,新的StringBooleanSerializer());
@JsonSerialize(using=StringBooleanSerializer.class)
private Boolean bool;