如果 JSON 字符串具有该变量,是否会为具有瞬态 属性 的变量赋值?

Does a variable with transient property gets assigned with value if JSON string has that variable?

我不太熟悉序列化,尤其是与瞬态 属性 有关的序列化,所以我想知道如果 JSON正在序列化的字符串包含具有相应值的 keyword/variable。

假设我有一个 JSON:

"json": { "title": "TEST", "date": "2015-07-20" }

我有一个 class:

public class MyClass {
    protected String title;
    protected transient String date;
}

当我使用 GSON 的 fromJson() 方法时,变量 date 会在 JSON 中接收 date 的值吗?

编辑:只是为了澄清问题,我不打算使用 GsonBuilder,只是使用它的默认设置。我真的很想知道它是如何处理我所说的案例的

不,不会。来自文档

if a field is marked transient, (by default) it is ignored and not included in the JSON serialization or deserialization.

你可以找到它here

默认情况下它被忽略。来自 docs:

If a field is marked transient, (by default) it is ignored and not included in the JSON serialization or deserialization.

但是您可以通过构造一个特殊的 Gson 对象来更改该默认行为:

Gson gson = new GsonBuilder()
   .excludeFieldsWithModifiers(Modifier.STATIC)
   .create();

这将包括瞬态场。