2014-04-28 45 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级或更多的子类......所以希望任何应在服务改变

相关问题