首页 > spring boot 如何替换返回json中的null为空串

spring boot 如何替换返回json中的null为空串

如题:springboot项目将返回的对象实例自动转化为json格式,那么当对象中出现空数据的时候,json就会出现value值为null的情况,现在ios客户端要求用空字符串代替null,请问大神们,何解


想不想试试这招?Null values as empty strings

首先写一个自定义的null值序列化器:

import java.io.IOException;

import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.JsonProcessingException;
import org.codehaus.jackson.map.JsonSerializer;
import org.codehaus.jackson.map.SerializerProvider;

public class NullSerializer extends JsonSerializer<Object> {

    @Override
    public void serialize(Object value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException {
        jgen.writeString("");
    }
}

再写一个自定义的ObjectMapper,并使用刚写的那个null值序列化器:

import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.ser.StdSerializerProvider;


public class CustomObjectMapper extends ObjectMapper{
    public CustomObjectMapper(){
        StdSerializerProvider sp = new StdSerializerProvider();
        sp.setNullValueSerializer(new NullSerializer());
        this.setSerializerProvider(sp);
    }

}

最后使用这个自定义的CustomObjectMapper来处理你的json数据好了


可以配置你的json工具,如果spring mvc默认好像用的是jackson。

【热门文章】
【热门文章】