2014-04-28 87 views
1

我想在反序列化階段選擇性地忽略JSON屬性。我目前正在處理一個巨大的JSON文件,需要很長的時間才能在慢速Android設備上反序列化,並且我想指定一些屬性在應用生命週期的不同階段不要反序列化。問題是,有時我需要這些數據,而且我需要能夠在實際需要時反序列化忽略的數據。在使用Jackson反序列化期間有選擇地忽略JSON屬性

我使用的是Jackson和ObjectMapper。

例POJO:

public class Pojo { 
    private String name; 
    private Map<String, String> data; 

    ... 
} 

例JSON:

{ 
    "pojos" : [ { 
     name : "Name", 
     data : { 
      "somedata1" : "somevalue1", 
      "somedata2" : "somevalue2", 
      "somedata3" : "somevalue3" 
      ... 
     } 
    } ] 
} 

會有 「的POJO」,每個 「數據」 屬性將獲得鉅額的大量。所以我想有時會反序列化忽略「數據」屬性。有時候我想讓「數據」正常地反序列化。

+0

我們需要更多的繼續下去。查看代碼?你在使用ObjectMapper嗎?你有一堂課嗎?一些課程?你是手動解串行嗎?規則是什麼?什麼是數據結構?一種方法是使用不同的JsonIgnoreProperties註解類,但沒有任何信息不能說。 – TedTrippin

+0

我正在考慮不同的類方法,但這意味着我需要更改我的服務接口,因爲它依賴於序列化的類類型。我使用示例代碼和JSON編輯了問題。 –

+0

所以你所有的數據總是一個字符串映射?在這種情況下你可以做的不多。 – TedTrippin

回答

1

通過使用不同的類,您可以創建與類適合的服務接口的超類,然後創建2級或更多的子類......所以希望任何應在服務改變

相關問題