android中JSONObject的使用;
今天项目上要用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;
}