Android Json解析与GSON?

Android Json解析与GSON?,android,json,gson,android-volley,Android,Json,Gson,Android Volley,我非常熟悉使用Gson进行Json解析。我用Gson做过Json解析,但最近我有多个Json对象,有响应,我在解析上有点卡住了,这是我的代码,有人能帮我解决我的问题吗,我哪里做错了 提前谢谢 以下是我的json响应:- 以下是我的POGO解析类:- Style Profile.java public class StyleProfile implements Parcelable { @SerializedName("user_name") @Expose private String us

我非常熟悉使用Gson进行Json解析。我用Gson做过Json解析,但最近我有多个Json对象,有响应,我在解析上有点卡住了,这是我的代码,有人能帮我解决我的问题吗,我哪里做错了

提前谢谢

以下是我的json响应:-

以下是我的POGO解析类:-

Style Profile.java

public class StyleProfile implements Parcelable {

@SerializedName("user_name")
@Expose
private String user_name;
@SerializedName("user_picture")
@Expose
private String user_picture;

@SerializedName("user_attr")
@Expose
private UserAttrEntity user_attr;

@SerializedName("user_attributes")
@Expose
private UserAttributes userAttributes;

@SerializedName("style_attr")
@Expose
private StyleAttr style_attr;

private StyleAttrEntity style_attrEntity;


private UserAttributesEntity user_attributes;
private String user_style;
@SerializedName("user_background_image")
@Expose
private String userBackgroundImage;
@SerializedName("user_style_message")
@Expose
private String userStyleMessage;
private String user_style_message;
private List<String> style_message;

public StyleProfile() {

}

protected StyleProfile(Parcel in)
{
    user_name = in.readString();
    user_picture = in.readString();
    user_style = in.readString();
    // style_message = in.readString();
}

public static final Creator<StyleProfile> CREATOR = new Creator<StyleProfile>() {
    @Override
    public StyleProfile createFromParcel(Parcel in) {
        return new StyleProfile(in);
    }

    @Override
    public StyleProfile[] newArray(int size) {
        return new StyleProfile[size];
    }
};

public StyleAttr getStyle_attr() {
    return style_attr;
}

public void setStyle_attr(StyleAttr style_attr) {
    this.style_attr = style_attr;
}

public String getName() {
    return user_name;
}

public void setName(String name) {
    this.user_name = name;
}

public String getImage() {
    return user_picture;
}

public void setImage(String image) {
    this.user_picture = image;
}

public UserAttrEntity getUser_attr() {
    return user_attr;
}

public void setUser_attributes(UserAttributesEntity user_attributes) {
    this.user_attributes = user_attributes;
}

public void setUser_style(String user_style) {
    this.user_style = user_style;
}

public String getUser_style() {
    return user_style;
}

public List<String> getStyle_message() {
    return style_message;
}

public void setStyle_message(List<String> style_message) {
    this.style_message = style_message;
}

public String getStyleMessageAsString() {
    return TextUtils.join(". ", style_message);
}

public void setUser_style_message(String user_style_message) {
    this.user_style_message = user_style_message;
}

public String getUser_style_message() {
    return user_style_message;
}

public UserAttributesEntity getUser_attributes() {
    return user_attributes;
}

public void setUser_attr(UserAttrEntity user_attr) {
    this.user_attr = user_attr;
}

public UserAttributes getUserAttr() {
    return userAttributes;
}

public void setUserAttr(UserAttributes userAttr) {
    this.userAttributes = userAttr;
}

public UserAttributes getUserAttributes() {
    return userAttributes;
}

public void setUserAttributes(UserAttributes userAttributes) {
    this.userAttributes = userAttributes;
}

public String getUserStyle() {
    return user_style;
}

public void setUserStyle(String userStyle) {
    this.user_style = userStyle;
}

public String getUserBackgroundImage() {
    return userBackgroundImage;
}

public void setUserBackgroundImage(String userBackgroundImage) {
    this.userBackgroundImage = userBackgroundImage;
}

public String getUserStyleMessage() {
    return userStyleMessage;
}

public void setUserStyleMessage(String userStyleMessage) {
    this.userStyleMessage = userStyleMessage;
}

@Override
public int describeContents() {
    return 0;
}

public StyleAttrEntity getStyle_attrEntity() {
    return style_attrEntity;
}

public static Creator<StyleProfile> getCREATOR() {
    return CREATOR;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(user_name);
    dest.writeString(user_picture);
    dest.writeParcelable(user_attr, flags);
    dest.writeParcelable(style_attr, flags);
    dest.writeString(user_style);
}

public void setStyle_attrEntity(StyleAttrEntity style_attrEntity) {
    this.style_attrEntity = style_attrEntity;
}

public static class StyleAttr implements Parcelable {

    @SerializedName("Edgy")
    @Expose
    private Integer edgy;
    @SerializedName("Feminine")
    @Expose
    private Integer feminine;
    @SerializedName("Fashion Forward")
    @Expose
    private Integer fashionForward;
    @SerializedName("Classic")
    @Expose
    private Integer classic;
    @SerializedName("Casual")
    @Expose
    private Integer casual;
    @SerializedName("Bohemian")
    @Expose
    private Integer bohemian;

    protected StyleAttr(Parcel in) {
        edgy = in.readInt();
        casual = in.readInt();
        classic = in.readInt();
        edgy = in.readInt();
        fashionForward = in.readInt();
        feminine = in.readInt();
    }

    public static final Creator<StyleAttr> CREATOR = new Creator<StyleAttr>() {
        @Override
        public StyleAttr createFromParcel(Parcel in) {
            return new StyleAttr(in);
        }

        @Override
        public StyleAttr[] newArray(int size) {
            return new StyleAttr[size];
        }
    };

    public void setBohemian(int Bohemian) {
        this.bohemian = Bohemian;
    }

    public void setCasual(int Casual) {
        this.casual = Casual;
    }

    public void setClassic(int Classic) {
        this.classic = Classic;
    }

    public void setEdgy(int Edgy) {
        this.edgy = Edgy;
    }

    public void setFashionForward(int FashionForward) {
        this.fashionForward = FashionForward;
    }

    public void setFeminine(int Feminine) {
        this.feminine = Feminine;
    }

    public int getBohemian() {
        return bohemian;
    }

    public int getCasual() {
        return casual;
    }

    public int getClassic() {
        return classic;
    }

    public int getEdgy() {
        return edgy;
    }

    public int getFashionForward() {
        return fashionForward;
    }

    public int getFeminine() {
        return feminine;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(bohemian);
        dest.writeInt(casual);
        dest.writeInt(classic);
        dest.writeInt(edgy);
        dest.writeInt(fashionForward);
        dest.writeInt(feminine);
    }
}
public class UserAttrEntity implements Parcelable {

@SerializedName("Size")
private String Size = "";
@SerializedName("Shape")
private String Shape = "";

@SerializedName("Bottoms Size")
private String Bottoms_Size = "";

@SerializedName("Height")
private String Height = "";
@SerializedName("Shoes Size")
private String Shoes_Size = "";
@SerializedName("Complexion")
private String Face_Color = "";
@SerializedName("Face Shape")
private String Face_Shape = "";

public UserAttrEntity() {

}

protected UserAttrEntity(Parcel in) {
    Shape = in.readString();
    Size = in.readString();
    Bottoms_Size = in.readString();
    Height = in.readString();
    Shoes_Size = in.readString();
    Face_Color = in.readString();
    Face_Shape = in.readString();
}

public static final Creator<UserAttrEntity> CREATOR = new Creator<UserAttrEntity>() {
    @Override
    public UserAttrEntity createFromParcel(Parcel in) {
        return new UserAttrEntity(in);
    }

    @Override
    public UserAttrEntity[] newArray(int size) {
        return new UserAttrEntity[size];
    }
};

public void setShape(String Shape) {
    this.Shape = Shape;
}

public void setSize(String Size) {
    this.Size = Size.replace("\n", " ");
}

public void setBottoms_Size(String Bottoms_Size) {
    this.Bottoms_Size = Bottoms_Size + " Inch";
}

public void setHeight(String Height) {
    this.Height = Height;
}

public void setShoes_Size(String Shoes_Size) {
    this.Shoes_Size = Shoes_Size;
}

public void setFace_Color(String Face_Color) {
    this.Face_Color = Face_Color;
}

public void setFace_Shape(String Face_Shape) {
    this.Face_Shape = Face_Shape;
}

public String getShape() {
    return Shape;
}

public String getSize() {
    return Size;
}

public String getBottoms_Size() {
    return Bottoms_Size;
}

public String getHeight() {
    return Height;
}

public String getShoes_Size() {
    return Shoes_Size;
}

public String getFace_Color() {
    return Face_Color;
}

public String getFace_Shape() {
    return Face_Shape;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(Shape);
    dest.writeString(Size);
    dest.writeString(Bottoms_Size);
    dest.writeString(Height);
    dest.writeString(Shoes_Size);
    dest.writeString(Face_Color);
    dest.writeString(Face_Shape);
}
}
public class UserAttributes {
@SerializedName("Size")
@Expose
private Size size;
@SerializedName("Shape")
@Expose
private Shape shape;
@SerializedName("Bottoms Size")
@Expose
private BottomsSize bottomsSize;
@SerializedName("Height")
@Expose
private Height height;
@SerializedName("Shoes Size")
@Expose
private ShoesSize shoesSize;
@SerializedName("Complexion")
@Expose
private Complexion complexion;
@SerializedName("Face Shape")
@Expose
private FaceShape faceShape;

public Size getSize() {
    return size;
}

public void setSize(Size size) {
    this.size = size;
}

public Shape getShape() {
    return shape;
}

public void setShape(Shape shape) {
    this.shape = shape;
}

public BottomsSize getBottomsSize() {
    return bottomsSize;
}

public void setBottomsSize(BottomsSize bottomsSize) {
    this.bottomsSize = bottomsSize;
}

public Height getHeight() {
    return height;
}

public void setHeight(Height height) {
    this.height = height;
}

public ShoesSize getShoesSize() {
    return shoesSize;
}

public void setShoesSize(ShoesSize shoesSize) {
    this.shoesSize = shoesSize;
}

public Complexion getComplexion() {
    return complexion;
}

public void setComplexion(Complexion complexion) {
    this.complexion = complexion;
}

public FaceShape getFaceShape() {
    return faceShape;
}

public void setFaceShape(FaceShape faceShape) {
    this.faceShape = faceShape;
}
}
Style Profile.java

public class StyleProfile implements Parcelable {

@SerializedName("user_name")
@Expose
private String user_name;
@SerializedName("user_picture")
@Expose
private String user_picture;

@SerializedName("user_attr")
@Expose
private UserAttrEntity user_attr;

@SerializedName("user_attributes")
@Expose
private UserAttributes userAttributes;

@SerializedName("style_attr")
@Expose
private StyleAttr style_attr;

private StyleAttrEntity style_attrEntity;


private UserAttributesEntity user_attributes;
private String user_style;
@SerializedName("user_background_image")
@Expose
private String userBackgroundImage;
@SerializedName("user_style_message")
@Expose
private String userStyleMessage;
private String user_style_message;
private List<String> style_message;

public StyleProfile() {

}

protected StyleProfile(Parcel in)
{
    user_name = in.readString();
    user_picture = in.readString();
    user_style = in.readString();
    // style_message = in.readString();
}

public static final Creator<StyleProfile> CREATOR = new Creator<StyleProfile>() {
    @Override
    public StyleProfile createFromParcel(Parcel in) {
        return new StyleProfile(in);
    }

    @Override
    public StyleProfile[] newArray(int size) {
        return new StyleProfile[size];
    }
};

public StyleAttr getStyle_attr() {
    return style_attr;
}

public void setStyle_attr(StyleAttr style_attr) {
    this.style_attr = style_attr;
}

public String getName() {
    return user_name;
}

public void setName(String name) {
    this.user_name = name;
}

public String getImage() {
    return user_picture;
}

public void setImage(String image) {
    this.user_picture = image;
}

public UserAttrEntity getUser_attr() {
    return user_attr;
}

public void setUser_attributes(UserAttributesEntity user_attributes) {
    this.user_attributes = user_attributes;
}

public void setUser_style(String user_style) {
    this.user_style = user_style;
}

public String getUser_style() {
    return user_style;
}

public List<String> getStyle_message() {
    return style_message;
}

public void setStyle_message(List<String> style_message) {
    this.style_message = style_message;
}

public String getStyleMessageAsString() {
    return TextUtils.join(". ", style_message);
}

public void setUser_style_message(String user_style_message) {
    this.user_style_message = user_style_message;
}

public String getUser_style_message() {
    return user_style_message;
}

public UserAttributesEntity getUser_attributes() {
    return user_attributes;
}

public void setUser_attr(UserAttrEntity user_attr) {
    this.user_attr = user_attr;
}

public UserAttributes getUserAttr() {
    return userAttributes;
}

public void setUserAttr(UserAttributes userAttr) {
    this.userAttributes = userAttr;
}

public UserAttributes getUserAttributes() {
    return userAttributes;
}

public void setUserAttributes(UserAttributes userAttributes) {
    this.userAttributes = userAttributes;
}

public String getUserStyle() {
    return user_style;
}

public void setUserStyle(String userStyle) {
    this.user_style = userStyle;
}

public String getUserBackgroundImage() {
    return userBackgroundImage;
}

public void setUserBackgroundImage(String userBackgroundImage) {
    this.userBackgroundImage = userBackgroundImage;
}

public String getUserStyleMessage() {
    return userStyleMessage;
}

public void setUserStyleMessage(String userStyleMessage) {
    this.userStyleMessage = userStyleMessage;
}

@Override
public int describeContents() {
    return 0;
}

public StyleAttrEntity getStyle_attrEntity() {
    return style_attrEntity;
}

public static Creator<StyleProfile> getCREATOR() {
    return CREATOR;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(user_name);
    dest.writeString(user_picture);
    dest.writeParcelable(user_attr, flags);
    dest.writeParcelable(style_attr, flags);
    dest.writeString(user_style);
}

public void setStyle_attrEntity(StyleAttrEntity style_attrEntity) {
    this.style_attrEntity = style_attrEntity;
}

public static class StyleAttr implements Parcelable {

    @SerializedName("Edgy")
    @Expose
    private Integer edgy;
    @SerializedName("Feminine")
    @Expose
    private Integer feminine;
    @SerializedName("Fashion Forward")
    @Expose
    private Integer fashionForward;
    @SerializedName("Classic")
    @Expose
    private Integer classic;
    @SerializedName("Casual")
    @Expose
    private Integer casual;
    @SerializedName("Bohemian")
    @Expose
    private Integer bohemian;

    protected StyleAttr(Parcel in) {
        edgy = in.readInt();
        casual = in.readInt();
        classic = in.readInt();
        edgy = in.readInt();
        fashionForward = in.readInt();
        feminine = in.readInt();
    }

    public static final Creator<StyleAttr> CREATOR = new Creator<StyleAttr>() {
        @Override
        public StyleAttr createFromParcel(Parcel in) {
            return new StyleAttr(in);
        }

        @Override
        public StyleAttr[] newArray(int size) {
            return new StyleAttr[size];
        }
    };

    public void setBohemian(int Bohemian) {
        this.bohemian = Bohemian;
    }

    public void setCasual(int Casual) {
        this.casual = Casual;
    }

    public void setClassic(int Classic) {
        this.classic = Classic;
    }

    public void setEdgy(int Edgy) {
        this.edgy = Edgy;
    }

    public void setFashionForward(int FashionForward) {
        this.fashionForward = FashionForward;
    }

    public void setFeminine(int Feminine) {
        this.feminine = Feminine;
    }

    public int getBohemian() {
        return bohemian;
    }

    public int getCasual() {
        return casual;
    }

    public int getClassic() {
        return classic;
    }

    public int getEdgy() {
        return edgy;
    }

    public int getFashionForward() {
        return fashionForward;
    }

    public int getFeminine() {
        return feminine;
    }

    @Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeInt(bohemian);
        dest.writeInt(casual);
        dest.writeInt(classic);
        dest.writeInt(edgy);
        dest.writeInt(fashionForward);
        dest.writeInt(feminine);
    }
}
public class UserAttrEntity implements Parcelable {

@SerializedName("Size")
private String Size = "";
@SerializedName("Shape")
private String Shape = "";

@SerializedName("Bottoms Size")
private String Bottoms_Size = "";

@SerializedName("Height")
private String Height = "";
@SerializedName("Shoes Size")
private String Shoes_Size = "";
@SerializedName("Complexion")
private String Face_Color = "";
@SerializedName("Face Shape")
private String Face_Shape = "";

public UserAttrEntity() {

}

protected UserAttrEntity(Parcel in) {
    Shape = in.readString();
    Size = in.readString();
    Bottoms_Size = in.readString();
    Height = in.readString();
    Shoes_Size = in.readString();
    Face_Color = in.readString();
    Face_Shape = in.readString();
}

public static final Creator<UserAttrEntity> CREATOR = new Creator<UserAttrEntity>() {
    @Override
    public UserAttrEntity createFromParcel(Parcel in) {
        return new UserAttrEntity(in);
    }

    @Override
    public UserAttrEntity[] newArray(int size) {
        return new UserAttrEntity[size];
    }
};

public void setShape(String Shape) {
    this.Shape = Shape;
}

public void setSize(String Size) {
    this.Size = Size.replace("\n", " ");
}

public void setBottoms_Size(String Bottoms_Size) {
    this.Bottoms_Size = Bottoms_Size + " Inch";
}

public void setHeight(String Height) {
    this.Height = Height;
}

public void setShoes_Size(String Shoes_Size) {
    this.Shoes_Size = Shoes_Size;
}

public void setFace_Color(String Face_Color) {
    this.Face_Color = Face_Color;
}

public void setFace_Shape(String Face_Shape) {
    this.Face_Shape = Face_Shape;
}

public String getShape() {
    return Shape;
}

public String getSize() {
    return Size;
}

public String getBottoms_Size() {
    return Bottoms_Size;
}

public String getHeight() {
    return Height;
}

public String getShoes_Size() {
    return Shoes_Size;
}

public String getFace_Color() {
    return Face_Color;
}

public String getFace_Shape() {
    return Face_Shape;
}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(Shape);
    dest.writeString(Size);
    dest.writeString(Bottoms_Size);
    dest.writeString(Height);
    dest.writeString(Shoes_Size);
    dest.writeString(Face_Color);
    dest.writeString(Face_Shape);
}
}
public class UserAttributes {
@SerializedName("Size")
@Expose
private Size size;
@SerializedName("Shape")
@Expose
private Shape shape;
@SerializedName("Bottoms Size")
@Expose
private BottomsSize bottomsSize;
@SerializedName("Height")
@Expose
private Height height;
@SerializedName("Shoes Size")
@Expose
private ShoesSize shoesSize;
@SerializedName("Complexion")
@Expose
private Complexion complexion;
@SerializedName("Face Shape")
@Expose
private FaceShape faceShape;

public Size getSize() {
    return size;
}

public void setSize(Size size) {
    this.size = size;
}

public Shape getShape() {
    return shape;
}

public void setShape(Shape shape) {
    this.shape = shape;
}

public BottomsSize getBottomsSize() {
    return bottomsSize;
}

public void setBottomsSize(BottomsSize bottomsSize) {
    this.bottomsSize = bottomsSize;
}

public Height getHeight() {
    return height;
}

public void setHeight(Height height) {
    this.height = height;
}

public ShoesSize getShoesSize() {
    return shoesSize;
}

public void setShoesSize(ShoesSize shoesSize) {
    this.shoesSize = shoesSize;
}

public Complexion getComplexion() {
    return complexion;
}

public void setComplexion(Complexion complexion) {
    this.complexion = complexion;
}

public FaceShape getFaceShape() {
    return faceShape;
}

public void setFaceShape(FaceShape faceShape) {
    this.faceShape = faceShape;
}
}
在这里,我是这样使用它的

Profile profile = gson.fromJson(obj.toString(), Profile.class);
Log.e("", "profile.getStatus() " + profile.getStatus());
mReceiver.onResponse(profile, tag);
这样试试

//主要数据

public class MainData{

@SerializedName("status")
@Expose
private String status;
@SerializedName("data")
@Expose
private Data data;


}
//资料

public class Data  {

    @SerializedName("user_name")
    @Expose
    private String userName;
    @SerializedName("user_picture")
    @Expose
    private String userPicture;
    @SerializedName("user_attr")
    @Expose
    private UserAttr userAttr;
    @SerializedName("user_attributes")
    @Expose
    private UserAttributes userAttributes;
    @SerializedName("style_attr")
    @Expose
    private StyleAttr styleAttr;
    @SerializedName("user_style")
    @Expose
    private String userStyle;
    @SerializedName("user_background_image")
    @Expose
    private String userBackgroundImage;
    @SerializedName("user_style_message")
    @Expose
    private String userStyleMessage;
}
//用户属性

    public class UserAttr {

    @SerializedName("user_attr")
    private Map<String, String> userAttributes;

    public Map<String, String> getUserAttributes() {
        return userAttributes;
    }

    public void setUserAttributes(Map<String, String> userattributes) {
        this.userAttributes= userattributes;
    }
}

把你的get,set方法放在你自己的位置。

我有点困惑,你能举例吗?这里我使用的是映射类型,它会自动映射所有密钥对值。如果您想在将来添加任何字段,则无需在类中添加任何额外字段。请处理好这件事……这对我有点帮助……但是你给了你时间,也帮了我……)那么,你需要什么呢?用你的问题更新你最后的评论,而不是新的。让我们来看看。