Android Json parsing with GSON?



我对与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;
    }
}

请自己设置您的获取方法。

最新更新