我实施了
JsonDeserializer<String>并在上注册了
GsonBuilder。因此,对于收到的所有String字段,Gson将使用my
StringGsonTypeAdapter反序列化该值。
下面是我的代码:
import static net.hugonardo.java.commons.text.StringUtils.normalizeSpace;import static net.hugonardo.java.commons.text.StringUtils.trimToNull;final class StringGsonTypeAdapter implements JsonDeserializer<String> { private static final StringGsonTypeAdapter INSTANCE = new StringGsonTypeAdapter(); static StringGsonTypeAdapter instance() { return INSTANCE; } @Override public String deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException { return normalizeSpace(trimTonull(jsonElement.getAsString())); }}…以及我的GsonBuilder:
Gson gson = new GsonBuilder() .registerTypeAdapter(String.class, StringGsonTypeAdapter.instance()) .create())



