如题:springboot项目将返回的对象实例自动转化为json格式,那么当对象中出现空数据的时候,json就会出现value值为null的情况,现在ios客户端要求用空字符串代替null,请问大神们,何解
回答
首先写一个自定义的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 {
@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。