我有两个A和B类: 以下是代码:
ISample
使用gson API如何排除B类中的瞬态字段.GsonBuilder类中的excludeFieldsWithModifiers方法将仅排除A类的瞬态字段而不排除B类的瞬态字段,因为类A包含类B的对象列表,而字段2在类B中定义。
答案 0 :(得分:2)
当Gson
序列化List<B>
时,它实际上会序列化列表内容。当然,它会跳过内容模型中的瞬态字段。
答案 1 :(得分:1)
默认情况下,如果将字段标记为瞬态,则会将其排除。同样,如果字段标记为“静态”,则默认情况下将其排除。 如果你在B类的某处使用了以下语句,它将包含瞬态字段并仅排除指定的修饰符,在所述情况下为“static”
Gson gson = new GsonBuilder().excludeFieldsWithModifiers(Modifier.STATIC).create();
您可以添加瞬态修改器以排除瞬态字段:
import java.lang.reflect.Modifier;
Gson gson = new GsonBuilder().excludeFieldsWithModifiers(Modifier.STATIC, Modifier.TRANSIENT).create();
这将排除所有瞬态字段和您添加的任何先前修饰符。