現在的火車票購買主要集中在網上,而國家鐵路部門提供的唯一網上購票方式,就是通過12306網站進行購買。12306網站在進行請求時返回的數據格式主要有HTML以及JSON兩種格式。其中JSON格式是程序員們常用的一種數據格式。
{ "status": true, "httpstatus": 200, "messages": [], "validateMessages": {}, "data": { "saleTime": "1200", "flag": true, "ifShowPassCode": false, "canChooseBeds": "N", "canChooseSeats": "N", "train_type_infos": [] } }
上面是12306返回的一個JSON數據樣例。其中,status表示請求是否成功,httpstatus表示HTTP請求狀態碼,messages表示錯誤信息,validateMessages表示校驗錯誤信息,data則是具體的響應數據。通過解析JSON格式的數據,我們可以快速獲取到我們需要的信息。
為了解析JSON數據,我們可以借助一些工具類庫,例如Google的GSON庫、阿里巴巴的FastJSON等。以GSON庫為例,我們可以使用如下代碼進行解析:
Gson gson = new Gson(); JsonObject jsonObject = gson.fromJson(jsonString, JsonObject.class); if(jsonObject!=null && jsonObject.get("status").getAsBoolean()){ JsonObject jsonData = jsonObject.get("data").getAsJsonObject(); String saleTime = jsonData.get("saleTime").getAsString(); boolean ifShowPassCode = jsonData.get("ifShowPassCode").getAsBoolean(); //... }
這樣,我們就可以獲取到JSON數據中的saleTime和ifShowPassCode兩個參數。通過這種方式,我們可以快速高效的獲取到我們需要的信息,實現自己的功能。