Red*_*gle 10 java json gson deserialization
有没有办法在使用Gson fromJson
方法时使用给定类的set 方法?
我想这样做是因为对于String
目标类的每个全局变量都进行了修剪.
是否有任何GSON API注释?
我知道GSON提供了编写自定义序列化器/反序列化器的能力,但我想知道是否有另一种方法来实现这一点.
gia*_*olo 13
不,没有.Gson主要通过实例字段的反射来工作.因此,如果你不打算转移到具有此功能的杰克逊,我认为你不能有一般的方式来打电话给你的安装人员.所以没有注释.
但
为了满足您的特定需求,您可以:
只要您发布一些代码或提供有关您的数据/ JSON的信息,我就可以为您提供更多提示.
我实现了JsonDeserializer<String>
并在 上注册了它GsonBuilder
。因此,对于收到的所有 String 字段,Gson 将使用 myStringGsonTypeAdapter
来反序列化该值。
下面是我的代码:
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()));
}
}
Run Code Online (Sandbox Code Playgroud)
...和我的 GsonBuilder:
Gson gson = new GsonBuilder()
.registerTypeAdapter(String.class, StringGsonTypeAdapter.instance())
.create())
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8608 次 |
最近记录: |