今天項目上要用json數據;看了點資料,而後完成了功能;學習習慣很重要,因此把他記錄下來;方便後面學習;java
要解析json須要使用到JSONObject 和JSONArraysjson
今天要解析的json數據的格式以下:{"succeed":true,"msg":"有新版本","body":{"creatTime":null,"describe":"asdf","id":1,"location":"/cardGod.apk","name":"asdfer","versionName":"1.0.0","versionNum":100}}數組
{ "body": { "describe": "asdf", "id": 1, "location": "/cardGod.apk", "name": "asdfer", "versionName": "1.0.0", "versionNum": 100 }, "msg": "有新版本", "succeed": true }
更具上面格式分析,創建一個javaBean代碼以下:網絡
public class UpdateInfo { private String msg; private boolean succeed; private Body body; public static class Body { public static String describe; public static int id; public static String location; public static String name; public static String versionName; public static String versionNum; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public boolean getSucceed() { return succeed; } public void setSucceed(boolean succeed) { this.succeed = succeed; } public Body getBody() { return body; } public void setBody(Body body) { this.body = body; } }
經過獲得JSON字符串後,使用函數
JSONObject obj = JSONObject(String string);
的構造函數將字符串轉換成JSONObject對象;使用該對象的getString("succeed"); 獲得succeed的值;工具
obj.getString("succeed");
最後,解析json的代碼以下:學習
*/ public static UpdateInfo getUpdateInfo(int nowversion) throws IOException, JSONException { final Map<String, Object> params = new HashMap<String, Object>(); params.put("version.versionNum", nowversion); JSONObject result = HttpConn.connPost(url, params); //這裏是工具類,從網絡中獲得數據後將其封裝成JSONObject對象; MyLog.log(url.toString() + " params " + nowversion); boolean boo = result.getBoolean("succeed"); String str = result.getString("msg"); String body = result.getString("body"); if (boo) { return pareUpdateInfo(body); } return null; } /** * 該方法用於解析獲得的json數組 * * @param json * @return UpdateInfo object * @throws JSONException * @throws Exception */ public static UpdateInfo pareUpdateInfo(String json) throws JSONException { UpdateInfo infoObj = new UpdateInfo(); JSONObject ja = new JSONObject(json); infoObj.getBody().describe = ja.getString("describe"); infoObj.getBody().id = Integer.parseInt(ja.getString("id")); infoObj.getBody().location = ja.getString("location"); infoObj.getBody().name = ja.getString("name"); infoObj.getBody().versionName = ja.getString("versionName"); infoObj.getBody().versionNum = ja.getString("versionNum"); return infoObj; }