2017-03-01 34 views
-3

我想创建一个POJO,我稍后想要使用GSON将其转换为JSON。我的JSON看起来像这样Java - 是否有可能通过名称“static”声明序列化的密钥

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

所以我的POJO看起来喜欢这个

public class MyPOJO { 

    public String static; 
    public String otherkey; 
} 

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

+0

看吧:http://stackoverflow.com/questions/423994/reserved-words-as-variable-or-method-name – Rumid

+2

您可以使用注释来分隔您的java字段名称和json名称。这允许您重命名其中一个而不影响另一个。 – Christine

+0

@Christine谢谢!做过某事。 –

回答

6

不,你不能将其命名为静态因为它是一个保留关键字,就像其他答案所说的那样。为了解决GSON您的问题,使用@SerializedName批注其他指定序列化过程中所使用的名称,并且不变量命名为static,捡东西,像这样:

@SerializedName("static") 
private String myStaticVar; 
4

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

+0

那么我该如何解决我的问题 –

+2

@VinayakBevinakatti将其命名为其他内容,然后指定['@ SerializedName'](https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName。 html)注释。 – Andreas

+0

@Andreas谢谢! –

3

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

您可以使用名称,如:statikstatic_,...

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

@SerializedName("static") 
public String statik; 
相关问题