您的位置:首页 > 其它

Gson选择性排除序列化字段

2016-07-25 18:25 369 查看
import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.Expose;

/**
* Created by wanghaiyang on 2016/7/25.
*/
public class Test {

private int id;

@Expose(serialize = false)
private String name;

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public int getId() {
return id;
}

public void setId(int id) {
this.id = id;
}

public static void main(String[] args) {
Test t = new Test();
t.setName("test");
t.setId(12);
GsonBuilder builder = new GsonBuilder();
builder.setDateFormat("yyyy-MM-dd HH:mm:ss");
builder.serializeSpecialFloatingPointValues();
builder.addSerializationExclusionStrategy(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes fieldAttributes) {
final Expose expose = fieldAttributes.getAnnotation(Expose.class);
return expose != null && !expose.serialize();
}

@Override
public boolean shouldSkipClass(Class<?> aClass) {
return false;
}
}).addDeserializationExclusionStrategy(new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes fieldAttributes) {
final Expose expose = fieldAttributes.getAnnotation(Expose.class);
return expose != null && !expose.deserialize();
}

@Override
public boolean shouldSkipClass(Class<?> aClass) {
return false;
}
});

Gson gson = builder.create();
String str = gson.toJson(t);
System.out.println(str);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: