Skip to content Skip to sidebar Skip to footer

How To Get A Subobject From Json Response

i'm trying to retrieve an inner object from a json response, my json pojo looks like this: public class Pojo { private String token; private User user; public Pojo()

Solution 1:

this just mirror code for model classes using Gson library

Pojo.java

import com.google.gson.annotations.SerializedName;

publicclassPojo {

@SerializedName("token")
privateString token;

@SerializedName("user")
privateUser user;

publicPojo(String username, String password,User user) {
    // TODO Auto-generated constructor stub
    user.setUsername(username);
    user.setPassword(password);
    this.token = "tokengfsgfds";
    this.user = user;
}

publicStringgetToken() {
    return token;
}

publicvoidsetToken(String token) {
    this.token = token;
}

publicUsergetUser() {
    return user;
}

publicvoidsetUser(User user) {
    this.user = user;
}
}

take User out of Pojo and make another class User.java

import com.google.gson.annotations.SerializedName;


publicclassUser {

@SerializedName("username")
privateString username;

@SerializedName("name")
privateString name;

@SerializedName("phone")
privateString phone;

@SerializedName("email")
privateString email;

@SerializedName("password")
privateString password;

@SerializedName("is_Active")
privateboolean is_active;

publicStringgetUsername() {
    return username;
}

publicvoidsetUsername(String username) {
    this.username = username;
}

publicStringgetName() {
    return name;
}

publicvoidsetName(String name) {
    this.name = name;
}

publicStringgetPhone() {
    return phone;
}

publicvoidsetPhone(String phone) {
    this.phone = phone;
}

publicStringgetEmail() {
    return email;
}

publicvoidsetEmail(String email) {
    this.email = email;
}

publicStringgetPassword() {
    return password;
}

publicvoidsetPassword(String password) {
    this.password = password;
}

publicbooleanisIs_active() {
    return is_active;
}

publicvoidsetIs_active(boolean is_active) {
    this.is_active = is_active;
}
}

I used Gson but the output should be the same

import com.google.gson.Gson;

publicclassTestTwo {
publicstaticvoidmain(String[] args) {
    User user = new User();
    user.setEmail("someone@gmailcom");
    user.setIs_active(true);
    user.setName("Cristian");
    user.setPassword("Cam");
    user.setPhone("1234123441");
    user.setUsername("cam.cri");

    Pojo pojo = new Pojo("cam.cri", "Cam", user);

    String result = (new Gson()).toJson(pojo);
    System.out.println(""+result);

    Pojo pojo2 = (new Gson()).fromJson(result, Pojo.class);

    System.out.println("Token: \t"+pojo2.getToken());
    System.out.println("email: \t"+pojo2.getUser().getEmail());
    System.out.println("is_active: \t"+pojo2.getUser().isIs_active());
    System.out.println("Name: \t"+pojo2.getUser().getName());
    System.out.println("Password: \t"+pojo2.getUser().getPassword());
    System.out.println("phone: \t"+pojo2.getUser().getPhone());
    System.out.println("Username: \t"+pojo2.getUser().getUsername());

}
}

Output

{"token":"tokengfsgfds","user":{"username":"cam.cri","name":"Cristian","phone":"1234123441","email":"someone@gmailcom","password":"Cam","is_Active":true}}

output

Token:  tokengfsgfds
email:      someone@gmailcom
is_active:trueName:       Cristian
Password:   Cam
phone:1234123441Username:   cam.cri

Post a Comment for "How To Get A Subobject From Json Response"