接口文檔:
app配置 接口 client/init 請求數據 json={"uid":"","sid":"","ver":"1", "request":{} } 返回數據 {"ret":0, "response":{ "tag_category":{ "中國畫":{ "年代":["先秦兩漢","戰國楚國","魏晉南北","隋唐五代","南宋北宋","元代","明清","近現代","年代不詳","其他"], "技法":["潑墨","工筆","寫意","白描","寫生","皴法","沒骨","指頭畫","其他"], ... }, "書法":{ "分類":["書法","碑帖","寫本寫經","書札文牘","其他"], "書體":["篆書","隸書","楷書","草書","行書","其他"], ... }, ... } } } 備注 tag_category 標簽分類
首先自然想到封裝成JavaBean。
注意點:
1、內部嵌套的類必須是static的,要不然解析會出錯;
2、類里面的屬性名必須跟Json字段里面的Key一模一樣;
3、因為Json字段里面的Key存在中文,所以必須在相應的字段上使用@SerializedName("中國畫")注解,給Key取別名。
4、內部嵌套用{}嵌套的就定義為 public ChinaPicture chinaPicture,用[]括起來的部分是一個List,所以定義為 public List<String> years。
5、如果不想寫get和set方法,只需要將字段定義成public。
public class JsonBean { public int ret; public Response response; public static class Response { public TagCategory tag_category; public static class TagCategory { @SerializedName("中國畫") public ChinaPicture chinaPicture; /** * 中國畫 */ public static class ChinaPicture { @SerializedName("年代") public List<String> years; @SerializedName("技法") public List<String> techniques; @SerializedName("題材") public List<String> topic; @SerializedName("規格") public List<String> specification; } @SerializedName("書法") public Calligraphy calligraphy; /** * 書法 */ public static class Calligraphy { @SerializedName("分類") public List<String> classification; @SerializedName("書體") public List<String> chirography; @SerializedName("規格") public List<String> specification; } @SerializedName("西方繪畫") public WesternPicture westernPicture; /** * 西方繪畫 */ public static class WesternPicture { @SerializedName("技法") public List<String> techniques; @SerializedName("題材") public List<String> topic; } @SerializedName("郵品") public Stamps stamps; /** * 郵品 */ public static class Stamps { @SerializedName("分類") public List<String> classification; @SerializedName("規格") public List<String> specification; } @SerializedName("錢幣") public Money money; /** * 錢幣 */ public static class Money { @SerializedName("分類") public List<String> classification; @SerializedName("國家") public List<String> country; @SerializedName("規格") public List<String> specification; } @SerializedName("瓷器") public China china; /** * 瓷器 */ public static class China { @SerializedName("年代") public List<String> years; @SerializedName("分類") public List<String> classification; } @SerializedName("紫砂壺") public Teapot teapot; /** * 紫砂壺 */ public static class Teapot { @SerializedName("規格") public List<String> specification; @SerializedName("泥料") public List<String> pug; @SerializedName("工藝") public List<String> crafts; @SerializedName("行業") public List<String> industry; } @SerializedName("金銀銅器") public MetalTool metalTool; /** * 金銀銅器 */ public static class MetalTool { @SerializedName("年代") public List<String> years; @SerializedName("分類") public List<String> classification; } @SerializedName("木器家具") public WoodFurniture woodFurniture; /** * 木器家具 */ public static class WoodFurniture { @SerializedName("材質") public List<String> material; @SerializedName("器型") public List<String> Shape; } @SerializedName("玉石翡翠") public Emerald emerald; /** * 玉石翡翠 */ public static class Emerald { @SerializedName("材質") public List<String> material; @SerializedName("鑲嵌") public List<String> inlay; @SerializedName("分類") public List<String> classification; } @SerializedName("紅木文玩") public RedWoodHeritage redWoodHeritage; /** * 紅木文玩 */ public static class RedWoodHeritage { @SerializedName("分類") public List<String> classification; @SerializedName("材質") public List<String> material; } @SerializedName("雜項") public OtherItems otherItems; /** * 雜項 */ public static class OtherItems { @SerializedName("年代") public List<String> years; } } } }