我对与Gson的JSON解析非常熟悉。我已经使用GSON进行了JSON解析,但是最近我有多个带有响应的JSON对象,我有点坚持解析,这是我的代码,任何人都可以帮助我解决我的问题,我在做错了什么。
预先感谢
这是我的JSON回应: - JSON响应
这是我的解析类: -
样式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);
}
}
}
userattrentity.java
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);
}
}
用户attributesentity.java
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.java
在这里我正在使用它
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;
}
//user_attr
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;
}
}
//user_attributes
public class UserAttributes {
@SerializedName("user_attributes")
private Map<String, CommonUserAttributes> userAttributes;
public Map<String, CommonUserAttributes> getUserAttributes() {
return userAttributes;
}
public void setUserAttributes(Map<String, CommonUserAttributes> userattributes) {
this.userAttributes = userattributes;
}
}
//styleattr
public class StyleAttr {
@SerializedName("style_attr")
private Map<String, Integer> styleAttributes;
public Map<String, Integer> getStyleAttributes() {
return styleAttributes;
}
public void setStyleAttributes(Map<String, Integer> styleAttributes) {
this.styleAttributes = styleAttributes;
}
}
//commonuserattributes
public class CommonUserAttributes {
@SerializedName("user_attr")
private String value;
@SerializedName("que_id")
private String bottmque_id;
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getBottmque_id() {
return bottmque_id;
}
public void setBottmque_id(String bottmque_id) {
this.bottmque_id = bottmque_id;
}
}
请自己设置您的获取方法。