Gosn 实现传入字符串指定字段序列化
public class TestGson {
static class MyObj {
public int _x;
public int xyz;
public int z;
public MyObj(int x, int y,int z) {
this._x = x;
this.xyz = y;
this.z = z;
}
}
public static void gson(final List<String> list) {
ExclusionStrategy myExclusionStrategy = new ExclusionStrategy() {
@Override
public boolean shouldSkipField(FieldAttributes fa) {
return !list.contains(fa.getName());
}
@Override
public boolean shouldSkipClass(Class<?> clazz) {
return false;
}
};
Gson gson = new GsonBuilder().setExclusionStrategies(myExclusionStrategy)
.create();
MyObj obj = new MyObj(1, 2,3);
String json = gson.toJson(obj);
System.out.println(json);
}
public static void main(String[] args) {
String test = "{_x,xyz,z}";
String[] strs = test.replace("{","").replace("}","").split(",|,");
List<String> list = Arrays.asList(strs);
gson(list);
}
}
使用的setExclusionStrategies方式,自定义对比方法,进行指定字符串序列化,结果如下: