Skip to content

Gson 序列化String 默认值null

Ricky Fung edited this page Sep 5, 2017 · 1 revision
import java.io.IOException;

import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;

public class StringNullAdapter extends TypeAdapter<String> {

	@Override  
    public void write(JsonWriter out, String value) throws IOException {  
        if (value == null) {  
            // out.nullValue();  
            out.value(""); // 序列化时将 null 转为 ""  
        } else {  
            out.value(value);  
        }  
    }  

    @Override  
    public String read(JsonReader in) throws IOException {  
        if (in.peek() == JsonToken.NULL) {  
            in.nextNull();  
            return null;  
        }  
        // return in.nextString();  
        String str = in.nextString();  
        if (str.equals("")) { // 反序列化时将 "" 转为 null  
            return null;  
        } else {  
            return str;  
        }  
    } 
}

构造Gson 实例:

Gson gson = new GsonBuilder().registerTypeAdapter(String.class, new StringNullAdapter()).create();

Java基础篇

Java进阶篇

微服务

注册中心

配置中心

分库分表

领域建模

Others

Clone this wiki locally