天天看點

Android Gson解析執行個體

Json常見執行個體:

1:基本Json對象

JsonParser jsonParser = new JsonParser();

JsonObject jsonObject = (JsonObject) jsonParser.parse(response.body().string());

String content=jsonObject.get(“content”).getAsString();

{
    "code":1,
    "content":"1"
}
           

2:Json對象

JsonParser jsonParser = new JsonParser();

JsonObject jsonObject = (JsonObject) jsonParser.parse(response.body().string());

JsonObject jo=jsonObject.getAsJsonObject(“content”)

String terminalId=jo.get(“terminalId”).getAsString();

{
    "code":1,
    "msg":"",
    "content":{
        "terminalId":428,
        "terminalToken":"593cbcaaa649a4af66667"
    }
}
           

3:Json數組

JsonParser jsonParser = new JsonParser();

JsonObject jsonObject = (JsonObject) jsonParser.parse(response.body().string());

JsonArray jsonArray=jsonObject.getAsJsonObject(“content”)

String imageUrl=jsonArray.get(0).getAsJsonObject().get(“imageUrl”).getAsString();

{
    "code":1,
    "msg":"",
    "content":[
        {
            "imageUrl":"http://.../aa.jpg",
            "sort":2
        }
    ]
}
           

4:Json數組

JsonParser jsonParser = new JsonParser();

JsonObject jsonObject = (JsonObject) jsonParser.parse(response.body().string());

JsonArray jsonArray=jsonObject.getAsJsonObject(“content”)

LotteryBean netLotteryBean = gson.fromJson(jsonArray.get(0).getAsJsonObject(), LotteryBean.class);

//擷取

int residueNum=netLotteryBean.getResidueNum();

//設定

netLotteryBean.setResidueNum(oldTicketNum);

{
    "code":1,
    "msg":"",
    "content":[
        {
        "id":166,
        "residueNum":"93",
        "lotteryName":"暗示法法師",
        "lotteryId":"9",
        "lotteryPrice":"0.01",
        "url":"http://....jpg"
        },
        {
        "id":166,
        "residueNum":"93",
        "lotteryName":"啊哈送貨單",
        "lotteryId":"9",
        "lotteryPrice":"0.01",
        "url":"http://....jpg"
        },
        {
        "id":166,
        "residueNum":"93",
        "lotteryName":"兒得很好",
        "lotteryId":"9",
        "lotteryPrice":"0.01",
        "url":"http://....jpg"
        }
    ]
}
           

5:整體解析執行個體

1、内部嵌套的類必須是static的,要不然解析會出錯;

2、類裡面的屬性名必須跟Json字段裡面的Key是一模一樣的;

1:執行個體1
{
    "code":1,
    "msg":"",
    "content":{
        "id":166,
        "residueNum":"93",
        "lotteryName":"阿爾達大廈的",
        "lotteryId":"9",
        "lotteryPrice":"0.01",
        "url":"http://.../20170204132426678.jpg"
    }
}
public class LotteryBean {
    //1,成功,2,失敗
    public int code;
    public String msg;
    public ContentBean content;

    public static class ContentBean {
        public int id;
        public String residueNum;
        public String lotteryBatch;
        public String lotteryBatchId;
        public String lotteryPrice;
        public String url;
    }
}
           
2,執行個體2
{
    "content":{
        "identity":"8840e0f067cd11e89485ed92ccd5da27",
        "hints":{
            "level":"SUCCESS",
            "tips":{
            }
        },
        "context":{
        },
        "content":{
            "balance":"52.42"
        }
    }
}
public class VipBalanceBean   {
    public ContentBean content;
    public static class ContentBean  {
        public String identity;
        public Hints hints;
        public Context context;
        public Content1 content;
        public static class Hints  {
            public String level;
            public Tips tips;

            public static class Tips {
            }
        }
        public static class Context {
        }
        public static class Content1  {
            public String balance;
        }
    }
}
           

結束!

繼續閱讀