在使用Gson的fromJson
方法時,有沒有任何方法給定類的設置方法?當Gson反序列化JSON時可以使用setter嗎?
我想這樣做是因爲對目標類的每個String
全局變量都進行了修剪。
是否有任何GSON API註釋?
我知道,GSON提供了編寫自定義序列化器/反序列化器的功能,但我想知道是否有另一種方法來實現這一點。
在使用Gson的fromJson
方法時,有沒有任何方法給定類的設置方法?當Gson反序列化JSON時可以使用setter嗎?
我想這樣做是因爲對目標類的每個String
全局變量都進行了修剪。
是否有任何GSON API註釋?
我知道,GSON提供了編寫自定義序列化器/反序列化器的功能,但我想知道是否有另一種方法來實現這一點。
我實施了JsonDeserializer<String>
並在GsonBuilder
上註冊。因此,對於收到的所有字符串字段,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())
沒有,沒有。 Gson主要通過反思實例字段來工作。所以如果你不打算轉移到傑克遜有這個功能,我認爲你不能有一個通用的方式來打電話給你的制定者。所以這裏沒有註釋。
但
實現自己的特殊需要,你可以:
只要您發佈一些代碼或提供有關您的數據/ JSON的信息,我可以爲您提供更多提示。