今天项目上要用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; }