使用gson将json字段反序列化为纯字符串

我试图将json对象反序列化为java bean。 我面临的主要问题是,我想将json字符串的字段object视为普通字符串,即使它包含一个可能正确的json对象。 json结构是这样的:

 { "type":"user", "object":{ "id":"1", ...} } 

我如何告诉gson忽略object值,以便它不会反序列化为对象? 我希望它只被映射到我的bean中的一个普通的String字段,以便我可以为它配置一个正确的反序列化,一旦我从type字段中获得了类型。

只需将其声明为JsonObject类型

 class ExampleJsonModel { @SerializedName("type") public String type; @SerializedName("object") public JsonObject object; } 

我不知道你的问题是否解决了。 我遇到了一个类似的问题,这就是我如何解决的问题:

JsonDeserializer允许您使用自己的适配器来反序列化**:

 class JavaBeanDeserializer implements JsonDeserializer() { public JavaBeanObject fromJson(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException { // return JavaBeanObject built using your logic. } 

在构建时,您需要将JavaBeanDeserializer注册到Gson对象:

 Gson gson = new GsonBuilder().registerTypeAdapter(JavaBeanObject.class, new JavaBeanDeserializer()).create();