首页 > 解决方案 > 如何将响应对象的字符串参数设置为空?

问题描述

我想返回我的响应对象的字符串参数为空,但我得到了空字符串。如何在响应对象中将字符串参数设置为 null?

谢谢你。

模型:

public class UserDto {

    Long id;
    String firstname;
    String lastname;

    //getter,setters
}

服务:

{
UserDto userDto = new UserDto();
userDto.setId(null);
userDto.setFirstname(null);
userDto.setLastname(null);
return userDto;
}

回复:

{
    "id": null,
    "firstName": "",
    "lastName": "",
}

标签: javaobjectmodelresponse

解决方案


如果您使用的是杰克逊,您可以创建一个 NullStringSerializer

public class NullStringSerializer extends JsonSerializer<String> {

    @Override
    public void serialize(String value, JsonGenerator g, SerializerProvider provider) throws IOException, JsonProcessingException {
        g.writeNull();
    }
}

并将其添加到您的 ObjectMapper

ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(String.class, new NullStringSerializer());
mapper.registerModule(module);

推荐阅读