2016-02-12 54 views
6

這是我的第一個JSON響應,我得到令牌改造2如何從嵌套的JSON對象(機器人)

{ 
"token": "I0ZmEifQ.CdbGWjkIYnuO29uJokCIGn8kXFbLbVp3gnlsEszagno" 
} 

POJO類

public class TokenReceiver { 
    private String token; 

    public String getToken() { 
     return token; 
    } 
} 

上述工作得很好,但如何應對得到下面

{ 
    "user": { 
    "id": 1, 
    "first_name": "Super", 
    "last_name": "Admin", 
    "email": "[email protected]", 
    "mobile_no": 2147483647, 
    "created_at": "2016-01-21 00:00:00", 
    "updated_at": "2016-01-21 00:00:00", 
    "user_role_id": 1 
    } 
} 

狀態代碼爲200(OK) 響應,但數據並不克ETTING連接到POJO

public class User { 

    @SerializedName("id") 
    @Expose 
    private int id; 

    @SerializedName("first_name") 
    @Expose 
    private String first_name; 

    @SerializedName("last_name") 
    @Expose 
    private String last_name; 

    @SerializedName("email") 
    @Expose 
    private String email; 

    @SerializedName("mobile_no") 
    @Expose 
    private String mobile_no; 

    @SerializedName("created_at") 
    @Expose 
    private String created_at; 

    @SerializedName("updated_at") 
    @Expose 
    private String updated_at; 

    @SerializedName("user_role_id") 
    @Expose 
    private int user_role_id; 
} 

在此先感謝

+0

希望它能幫助你!只需打開這個http://www.jsonschema2pojo.org/,然後選擇源類型:JSON和註釋樣式:GSON並在那裏轉儲完整的JSON,即可獲得完整的pojo,即可將其粘貼到項目代碼中。並且POJO類可以在Retrofit中設置爲CallBack! – Rahul

回答

7
public class Response{ 
    @SerializedName("user") 
    @Expose 
    private User user; 
    } 

public class User{ 

@SerializedName("id") 
@Expose 
private int id; 

@SerializedName("first_name") 
@Expose 
private String first_name; 

@SerializedName("last_name") 
@Expose 
private String last_name; 

@SerializedName("email") 
@Expose 
private String email; 

@SerializedName("mobile_no") 
@Expose 
private String mobile_no; 

@SerializedName("created_at") 
@Expose 
private String created_at; 

@SerializedName("updated_at") 
@Expose 
private String updated_at; 

@SerializedName("user_role_id") 
@Expose 
private int user_role_id; 
} 

內響應工作能通過下面提到的訪問。

response.getUser().getId(); 
+0

非常感謝:)響應obj = response.body()我可以使用這個對象(OBJ)只在改造的onResponse方法? –

+0

是的,你是正確的。你應該發送響應的根對象 - 新回調() – Boopathi

+0

我怎麼可以在onResponse方法外使用該對象? –

1
Public class classname{ 

public User user; 
class User{ 

@SerializedName("id") 
@Expose 
private int id; 

@SerializedName("first_name") 
@Expose 
private String first_name; 

@SerializedName("last_name") 
@Expose 
private String last_name; 

@SerializedName("email") 
@Expose 
private String email; 

@SerializedName("mobile_no") 
@Expose 
private String mobile_no; 

@SerializedName("created_at") 
@Expose 
private String created_at; 

@SerializedName("updated_at") 
@Expose 
private String updated_at; 

@SerializedName("user_role_id") 
@Expose 
private int user_role_id; 
} 
} 

上面的代碼會爲你

+0

Thankyou dude Classname obj = response1.body(); //分配Log.d(「MainActivity2」,「email =」+ response1.body()。user.getEmail()); Log.d(「MainActivity2」,「email =」+ obj.user.getEmail());在分配哪個是正確的方法調用後...都打印電子郵件:) –

+0

好的。如果它的工作意味着接受答案可能會有所幫助 – MathaN