2012-08-01 90 views
4

我有一些JSON,其中包含一個名爲「type」的鍵。該密鑰的值可以是includeexclude。我想將Gson配置爲不反序列化Json,並在鍵值爲exclude時創建一個對象。GSON - 基於字段值排除對象

我意識到我可以寫一個自定義的反序列化器,檢查是否合適,並創建對象或不。但是,我不確定是否有另一種使用某種排除策略的方法。

我概述的例子是過分簡化的。我真正的JSON包含更多的字段。

// Deserialize me 
{  
    "type" : "include" 
} 

// Skip over me, and do not deserialize 
{ 
    "type" : "exclude" 
} 

回答

0

我不認爲ExclusionStrategy可以在這裏幫助。它適用於類而不是實例,在實例得到處理的時候,只有評估結果(如果您想查看代碼,請參閱ReflectiveTypeAdapterFactory.BoundField)。

0

這可以幫助你......

Gson gson = new Gson(); 
JsonObject jsonObj = gson.fromJson (jsonStr, JsonElement.class).getAsJsonObject(); 

// Just read the required field 
if(jsonObj.get("type").getAsString().equals("include")) { 
    // Continue parsing/deserializing other details 
} else { 
    // Skip 
} 

您可以參考this爲GSON API文檔