2017-03-01 1 views
-3

Je voulais créer un POJO que je veux plus tard le convertir en JSON en utilisant GSON. Mon JSON ressemble à ceciJava - est-il possible de déclarer une clé sérialisée par le nom "static"

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

Alors mon POJO regarde aime ça

public class MyPOJO { 

    public String static; 
    public String otherkey; 
} 

Mais le complier me plaint à ce public String static;. Je sais que statique est un mot clé mais est-ce possible?

+0

Regardez ici: http://stackoverflow.com/questions/423994/reserved-words-as-variable-or-method-names – Rumid

+2

Vous pouvez utiliser des annotations pour séparer vos noms de champs Java et json. Cela vous permet de renommer l'un d'entre eux sans affecter l'autre. – Christine

+0

@Christine Merci! fait ça. –

Répondre

6

Non, vous ne pouvez pas le nommer statique parce que c'est un mot-clé réservé, tout comme les autres réponses disent. Pour résoudre votre problème avec GSON, utilisez l'annotation @SerializedName pour spécifier le nom utilisé pendant la sérialisation, et ne nomme pas la static variable choisir quelque chose d'autre comme si:

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

"statique" est un mot réservé. Vous ne pouvez pas l'utiliser pour une variable.

+0

Alors, comment puis-je résoudre mon problème –

+2

@VinayakBevinakatti Nommez-le autrement, puis spécifiez le ['@ SerializedName'] (https://google.github.io/gson/apidocs/com/google/gson/annotations/SerializedName. html) annotation. – Andreas

+0

@Andreas Merci! –

3

Vous ne pouvez pas: static est un mot-clé réservé.

Vous pouvez utiliser des noms comme: statik, static_, ...

Utilisez @SerializedName("static") pour spécifier le nom à utiliser dans la sortie JSON:

@SerializedName("static") 
public String statik;