【问题标题】:Java - is it possible to declare a serialized key by the name "static" [duplicate]Java - 是否可以通过名称“静态”声明序列化密钥 [重复]
【发布时间】:2017-07-21 09:10:00
【问题描述】:

我想创建一个 POJO,稍后我想使用 GSON 将其转换为 JSON。我的 JSON 看起来像这样

{
"static":"value",
"otherkey": "value"
}

所以我的 POJO 看起来像这样

public class MyPOJO {

    public String static;
    public String otherkey;
}

但是编译器在public String static; 向我抱怨。我知道 static 是一个关键字,但它可能吗?

【问题讨论】:

  • 你可以使用注解来分隔你的java字段名和json名。这允许您重命名其中一个而不影响另一个。
  • @Christine 谢谢!做到了。
  • @VinayakBevinakatti 你能看看我最近的代码吗?
  • @moocow 你的代码呢?

标签: java json gson pojo


【解决方案1】:

“静态”是保留字。您不能将其用于变量。

【讨论】:

  • 那么我该如何解决我的问题
  • @VinayakBevinakatti 将其命名为其他名称,然后指定 @SerializedName 注释。
【解决方案2】:

您不能:static 是保留关键字。

您可以使用以下名称:statikstatic_、...

使用@SerializedName("static") 指定要在 JSON 输出中使用的名称:

@SerializedName("static")
public String statik;

【讨论】:

    【解决方案3】:

    不,您不能将其命名为静态,因为它是保留关键字,就像其他答案所说的那样。要解决您的 GSON 问题,请使用 @SerializedName 注释指定序列化期间使用的名称,不要将变量命名为 static,选择其他类似的名称:

    @SerializedName("static")
    private String myStaticVar;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-05
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      • 1970-01-01
      • 2013-11-19
      • 1970-01-01
      • 2021-07-12
      相关资源
      最近更新 更多