今天项目上要用json数据;看了点资料,然后完成了功能;学习习惯很重要,所以把他记录下来;方便后面学习;
要解析json需要使用到JSONObject 和JSONArrays
今天要解析的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; }