有没有办法在使用Gson的fromJson方法时使用给定类的set方法?
我想这样做是因为对于目标类的每个String全局变量都进行了修剪.
是否有任何GSON API注释?
我知道GSON提供了编写自定义序列化器/反序列化器的能力,但我想知道是否有另一种方法来实现这一点.
解决方法:
我实现了一个JsonDeserializer< String>并在GsonBuilder上注册.因此,对于收到的所有String字段,Gson将使用我的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())