2
有没有方法在反序列化时指定不想反序列化的字段呢?比如VO中有id和name两个字段,在反序列化时只想反序列化id字段,其他不需要的字段不进行反序列化,以便提高效率,谢谢
有没有方法在反序列化时指定不想反序列化的字段呢?比如VO中有id和name两个字段,在反序列化时只想反序列化id字段,其他不需要的字段不进行反序列化,以便提高效率,谢谢
有个@JsonField的注解,可以看看
import com.alibaba.fastjson.annotation.JSONField;
@JSONField(serialize = false, deserialize = false)
@JSONField对所有的解析都是定死的,我想反序列化时动态决定字段是否反序列化可以做到吗,我的需求中有时用到全部数据,有时只用到部分数据,用到部分数据的时候就想只解析部分字段,谢谢
你想怎么来告诉json你想反序列化哪些数据呢
parse跟serialize有点不同,serialize时可以借助annotation之类的在结构上打标记,parse没这么方便
你是说发序列化时,动态提供一个key列表,只反序列化指定key的数据么?
Content content = new GsonBuilder()
.setExclusionStrategies(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes arg0) {
// 不解析test字段
return arg0.getName().equals("test");
}
@Override
public boolean shouldSkipClass(Class<?> arg0) {
return false;
}
})
.create()
.fromJson(json, Content.class);
之前用gson时,可以使用ExclusionStrategy来过滤掉不需要解析的字段,JSON是否也有类似的方法
@wenshao 你说的这个是序列化的时候,楼主说的是反序列化