mox*_*601 9 java gson deserialization
我试图将json对象反序列化为java bean.我面临的主要问题是,我想object将json字符串的字段视为普通字符串,即使它包含一个可能正确的json对象.json结构是这样的:
{
"type":"user",
"object":{
"id":"1",
...}
}
Run Code Online (Sandbox Code Playgroud)
我如何告诉gson忽略该object值,以便它不被反序列化为一个对象?我希望它只被映射到String我的bean中的普通字段,以便我可以为它配置一个正确的反序列化,一旦我从type字段中获得了类型.
GaR*_*eTa 11
只需将其声明为JsonObject类型
class ExampleJsonModel {
@SerializedName("type")
public String type;
@SerializedName("object")
public JsonObject object;
}
Run Code Online (Sandbox Code Playgroud)
不知道你的问题解决了没有。我遇到了类似的问题,这就是我的解决方法:
JsonDeserializer允许您创建自己的适配器来反序列化 **:
class JavaBeanDeserializer implements JsonDeserializer<JavaBeanObject>() {
public JavaBeanObject fromJson(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
// return JavaBeanObject built using your logic.
}
Run Code Online (Sandbox Code Playgroud)
在构建 Gson 对象时,您必须将JavaBeanDeserializer注册到它:
Gson gson = new GsonBuilder().registerTypeAdapter(JavaBeanObject.class, new JavaBeanDeserializer()).create();
Run Code Online (Sandbox Code Playgroud)