사실 GSON에 관한 여러 질문이 있습니다.
GSON가 필드의 값으로 설정한다면 첫 번째 인 null
제공된 JSON가 일치하는 모든 필드를 포함하지 않는 때를.
예를 들어, 제공된 JSON 필드를 제공 name
하지만 난 그것을 역 직렬화 클래스는 포함 name
하고 avatar
, 것입니다 avatar
null가?
다음 질문은 위의 하나의 관계에있다. 내가 이미 사전 정의 된 값으로 필드를 설정합니다 때, GSON는이 JSON (null로 오버라이드 (override) IT)에 제공되지 않거나 단순히 필드를 무시하고 이동 할 경우에도, 그것을 무시할 것인가?
그리고 마지막으로 나는 GSON 여전히에 값 설정합니다 알고 싶은 name
내가 사용하는 것입니다 때를 @SerializedName("username")
하지만, JSON 포함 name
.
내가 JSON 필드의 나쁜 인 이름을 포함하여 내 API를 업데이트 할,하지만 난 이전 필드 이름을 여전히 (일시적으로) 원하는 그래서 나는 동안도, 그것을 가능한 한 원활하게 사용하는 사람들을위한 그것의 전환을 만들고 싶어 새에 대한 지원을 제공한다. 즉, 사용 가능 @SerializedName
주석을?
나는 아직도 GSON와 초보자와이야 가이드 GSON 사용자 나 그 두 가지 특정 질문에 대답하는 그 도움이되지 않았습니다 (또는 I는 또한 가능할 것이다 그것을 간과).
나는 이것을 구현했습니다. 여기 내 코드입니다. 나는 마지막에 출력이 질문에 대한 답변이 되었기를 바랍니다.
JSON 사용 :
{
"name": "Robert",
"weather": "19 deg"
}
Main 클래스 :
public class GSONExample2 {
private static final String jsonStr = "JSON Mentioned above";
public static void main(String[] args) {
GsonDataExample root = new Gson().fromJson(jsonStr, GsonDataExample.class);
System.out.println(root);
}
}
POJO :
class GsonDataExample {
@SerializedName("username")
private String name;
private String avatar;
@SerializedName(value="weather", alternate = "temperature")
private String weather;
private String nameWithDefault = "Default name";
// getters, setters and toString() implemented
}
산출:
GsonDataExample (이름 = 널 (null), 아바타 = NULL, 날씨 = 19 ℃,, nameWithDefault = 기본 이름)
동일한 속성에 여러 키를 매핑하려면, 당신은 사용할 수 있습니다 @SerializedName(value="weather", alternate = "temperature")
위와 같이.