JSON이 포함되지 않은 경우 윌 GSON는 null로 필드를 설정?

Andre_601 :

사실 GSON에 관한 여러 질문이 있습니다.

GSON가 필드의 값으로 설정한다면 첫 번째 인 null제공된 JSON가 일치하는 모든 필드를 포함하지 않는 때를.
예를 들어, 제공된 JSON 필드를 제공 name하지만 난 그것을 역 직렬화 클래스는 포함 name하고 avatar, 것입니다 avatarnull가?

다음 질문은 위의 하나의 관계에있다. 내가 이미 사전 정의 된 값으로 필드를 설정합니다 때, 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")위와 같이.

추천

출처http://43.154.161.224:23101/article/api/json?id=24638&siteId=1