现在项目用到的都是json数据交互格式。json交互的好处数据格式非常清楚。
下面主要讲json解析,封装以后再说。
最简单的格式:假设:strResult={ "status": true, "error": null}
JSONObject jsonObject = new JSONObject(strResult);
boolean status=jsonObject.getBoolean("status");
解析普通数据:假设 strResult={"singer":{"id":01,"name":"黎明","gender":"男"}}
JSONObject jsonObject = new JSONObject(strResult);
JSONObject s =jsonObject.getJSONObject("singer");
int id=s.getInt("id");
解析数组:假设 strResult={"desc_arr":[ "你好",“他们”,"你是?"]}
JSONObject jsonObject = new JSONObject(strResult);
JSONArray reasonJsonArray = jsonObject .getJSONArray("desc_arr");
List<String> reasonList=new ArrayList<String>();
for(int n=0;n<reasonJsonArray.length();n++){
String reason=reasonJsonArray.get(n).toString()==null ? "":reasonJsonArray.get(n).toString();
reasonList.add(reason);
}
解析数列:假设
strResult=
{
"status": true,
"error": null,
"result": {
"show": 1,
"banner": "",
"list": [
{
"user_id": 3713,
"path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_6.jpg",
"str": "活跃"
},
{
"user_id": 43971,
"path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_5.jpg",
"str": "点赞第一人"
},
{
"user_id": 3713,
"path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_6.jpg",
"str": "给赞第一人"
},
{
"user_id": 43971,
"path_square": "http://7xjy3j.com2.z0.glb.qiniucdn.com/app/static/avatar_5.jpg",
"str": "发布第一人"
}
]
}
解析:
JSONObject jsonObject = new JSONObject(strResult);
if (!jsonObject.getBoolean("status")) {
return masterList;
}
JSONObject jsonResult = jsonObject.getJSONObject("result");
JSONArray jsonArray = jsonResult.getJSONArray("list");
if (jsonArray.length() == 0) {
return masterList;
}
for (int i = 0; i < jsonArray.length(); i++) {
MasterInfo masterInfo = new MasterInfo();
JSONObject jsonMaster = jsonArray.getJSONObject(i);
masterInfo.setUserId(jsonMaster.isNull("user_id") ? 0 : jsonMaster.getInt("user_id"));
masterInfo.setHonor_detail(jsonMaster.isNull("str") ? "" : jsonMaster.getString("str"));
masterInfo.setUserPath(jsonMaster.isNull("path_square") ? "" : jsonMaster.getString("path_square"))
masterList.add(masterInfo);
}
暂时现在基本想到了就这几个json解析,平常复杂的都是上面混合嵌套的,思路清楚就好了。
以后想到最添加。