2013-01-01 3 views
0

나는 다른 프로젝트에서이 작업을 수행하려고했습니다, 그리고 내가 본 튜토리얼에 따라, 나는 내가 곧 정상 궤도에 오전 알고 있지만, 나는이 올바르게 구문 분석을 얻을 수 없습니다JSON 구문 분석

(대부분 간체) JSON 출력 :

{ 
"data":{ 
    "info":{ 
     "username": "something" 
     "email" : "something" 
    } 
.. 
.. 

}

나는 다음과 같은 클래스를 사용하여 "메일"사용자 이름 "을 얻을 것을 시도하고있다 :

class ProfileResponse { 
static Data data; 

public static Data getData() { 
    return data; 
} 

public static void setData(Data data) { 
    ProfileResponse.data = data; 
} 

}

Class Data { 
@SerializedName("info") 
static Info info; 

public static Info getInfo() { 
    return info; 
} 

public static void setInfo(Info info) { 
    Data.info = info; 
} 

}

class Info { 
@SerializedName("username") 
static String username; 
@SerializedName("email") 
static String email; 

public static String getUsername() { 
    return username; 
} 

public static String getEmail() { 
    return email; 
} 

} 

등 같은 (그것이 문자열의 문제가 될 수 있을까?)이 JSON 문자열을 직렬화 복원 :이 NO "인쇄하는

  Gson gson = new Gson(); 
         gson.fromJson(response, ProfileResponse.class); 
         if (Info.getUsername() == null 
           || Info.getUsername().isEmpty()) { 
          System.out.println("NO USERNAME"); 
         } else { 
          System.out.println("USERNAME: " 
            + Info.getUsername()); 
         } 

을 USERNAME "을 실행합니다.

답변

0

static 필드는 기본적으로 직렬화/역 직렬화에서 제외됩니다.

클래스 (필드 및 방법)에서 static 개의 키워드를 모두 제거하고 fromJson()으로 전화하면 찾고있는 결과가 표시됩니다.

Gson은 JSON에서 클래스의 인스턴스를 인스턴스화합니다. 수업을 수정 한 후에는 다음 작업을 수행합니다.

ProfileResponse pr = gson.fromJson(response, ProfileResponse.class);