2016-02-12 2 views
6

это мой первый ответ JSON и я получил маркердооснащения 2, как получить ответ от вложенных объектов JSON (Android)

{ 
"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) , но данные не г Эттинг прилагается к 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, который вы можете установить как переадресацию звонков! – 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; 
} 

Inner Response может доступ к ним указан ниже.

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

спасибо большое :) Ответ obj = response.body() Могу ли я использовать этот объект (obj) только внутри метода onResponse для модифицирования? –

+0

да, вы правы .. вы должны отправить корневой объект Response-- new Callback () – 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 Имя класса obj = response1.body(); // присваиваем Log.d («MainActivity2», «email =» + response1.body(). user.getEmail()); Log.d («MainActivity2», «email =» + obj.user.getEmail()); после назначения, который является правильным методом для вызова ... оба печатают письмо :) –

+0

Хорошо. Если это работает, значит, ответ может быть полезным для кого-то – MathaN

Смежные вопросы