2016-02-12 50 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