2011-03-21 128 views
8

我想將json對象反序列化成java bean。 我面臨的主要問題是我想將json字符串的字段object視爲純字符串,即使它包含可能正確的json對象。 JSON的結構是這樣的:將json字段反序列化爲與gson的純字符串

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

我怎麼能告訴GSON忽略object值,以便它不會反序列化爲一個對象?我只想將它映射到我的bean中的普通String字段,以便我可以爲它設置適當的反序列化,一旦我從type字段獲得類型。

+0

我設法部分反序列化觀看這個答案的對象:http://stackoverflow.com/questions/3769473/what-is-the-easiest-way-to-parse-json-using-gson-when-the -element-to-parse-is-an/4455636#4455636 – mox601 2011-03-21 14:15:08

回答

1

我不知道你的問題是否解決。我遇到類似的問題,這裏是我如何工作吧:

JsonDeserializer可以讓你讓你自己的適配器來反序列化**:

class JavaBeanDeserializer implements JsonDeserializer<JavaBeanObject>() { 
    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(); 
+0

沒有嘗試您的解決方案,但是通過之前的註釋中的鏈接解決了這個問題 – mox601 2011-04-13 07:19:04

10

就宣佈作爲類型的JSONObject

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

    @SerializedName("object") 
    public JsonObject object; 
} 
相關問題