2017-03-01 4 views
-3

私は後でGSONを使用してJSONに変換するPOJOを作成したかったのです。私のJSONは、だから私のPOJOが好きにこのJava - "static"という名前でシリアル化されたキーを宣言することは可能ですか?

public class MyPOJO { 

    public String static; 
    public String otherkey; 
} 

に見える。しかし、コンパイラは、このpublic String static;で私に文句を言い、この

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

のように見えます。私は静的がキーワードであることを知っていますが、それは可能ですか?

+0

ここを見て:http://stackoverflow.com GSONであなたの問題を解決するために、直列化の際に使用される名前を指定するには、変数staticに名前を付けていないので、のような何かを選ぶ@SerializedNameアノテーションを使用/ questions/423994 /予約語としての変数またはメソッド名 – Rumid

+2

注釈を使用すると、Javaのフィールド名とjsonの名前を区切ることができます。これにより、どちらか一方の名前を他の名前に変更せずに名前を変更することができます。 – Christine

+0

@Christineありがとう!それをしました。 –

答えて

6

いいえ、あなたはそれが静的な名前することはできません他の答えと同様に、それは予約されたキーワードだからです。

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

"static"は予約語です。変数には使用できません。

+0

どうすれば問題を解決できますか? –

+2

@VinayakBevinakatti名前を付けて、['@ SerializedName'](https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName)を指定します。 html)注釈。 – Andreas

+0

@アンドレアスありがとう! –

3

できません:staticは予約済みのキーワードです。 JSON出力に使用する名前を指定するstatikstatic_、...

使用@SerializedName("static")

あなたが好きな名前を使用することができます

@SerializedName("static") 
public String statik; 
関連する問題