如题: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。