解决Gson转json对象,null值的处理

1.null值丢失问题:

Gson gs=new Gson()

改成

Gson gs=new GsonBuilder().serializeNulls().create();

2.null值处理

GsonBuilder gsonBuilder=new GsonBuilder();
        //遇到时间如何处理
        gsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss");
        //遇到字符串如何处理
        gsonBuilder.registerTypeAdapter(String.class,new StringNullAdapter());
        Gson gs=gsonBuilder.create();
import com.google.gson.TypeAdapter;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import com.google.gson.stream.JsonWriter;

import java.io.IOException;

public class StringNullAdapter extends TypeAdapter<String> {
    @Override
    public void write(JsonWriter jsonWriter, String s) throws IOException {
        //将对象转成json对象时,若有字段为null ,则转为""
        if (s==null){
            jsonWriter.value("");
            return;
        }
        jsonWriter.value(s);
    }

    @Override
    public String read(JsonReader jsonReader) throws IOException {
        //将json对象转成对象时,若有字段为null ,则转为""
        if (jsonReader.peek()== JsonToken.NULL){
            jsonReader.nextNull();
            return "";
        }
        return jsonReader.nextString();
    }
}

猜你喜欢

转载自blog.csdn.net/qq_59384418/article/details/127605169