2017-03-01 8 views
-3

나중에 GSON을 사용하여 JSON으로 변환 할 POJO를 만들고 싶습니다. 이Java - "static"이라는 이름으로 직렬화 된 키를 선언 할 수 있습니까?

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

그래서 내 POJO가 좋아하는이

public class MyPOJO { 

    public String static; 
    public String otherkey; 
} 

보이는 그러나 컴파일러는이 public String static; 날 불평처럼 내 JSON 보인다. 정적 키워드는 알고 있지만 가능합니까?

+0

봐 : http://stackoverflow.com/questions/423994/예약어와 변수 또는 메소드 이름 – Rumid

+2

주석을 사용하여 Java 필드 이름과 json 이름을 구분할 수 있습니다. 이렇게하면 다른 하나에 영향을주지 않고 둘 중 하나의 이름을 바꿀 수 있습니다. – Christine

+0

@Christine Thanks! 그거 했어. –

답변

6

아니, 당신이 정적 이름을 수 없습니다를 다른 답변과 마찬가지로 예약 키워드이기 때문입니다. GSON하여 문제를 해결하기 위해, 그래서 같이 다른 것을, 이름이 직렬화시에 사용하고, 변수 static 이름없는 지정 데리러 @SerializedName 주석을 사용 : 여기

@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은 예약 된 키워드입니다.

당신은 같은 이름을 사용할 수 있습니다 : statik, static_, ...

사용 @SerializedName("static") json으로 출력에 사용하는 이름 지정 :

@SerializedName("static") 
public String statik;