日期:2014-05-16  浏览次数:20452 次

服务器端返回的json数据的解析
服务器端返回的json数据格式如下
{
"resp":
{
"appVOList":
[
{
"msAppId": 52,
"appName": "软件市场15",
"appImgUrl": "http://192.168.1.100:8080/html5/eoeMarket2_align_v_200_icon.png",
"appTJZS": 0
},
{
"msAppId": 45,
"appName": "软件市场1",
"appImgUrl": "111",
"appTJZS": 0
},
{
"msAppId": 29,
"appName": "软件市场4",
"appImgUrl": "111",
"appTJZS": 0
}
],
"page":
{
"pageIndex": 0,
"pageSize": 15,
"pageSum": 1,
"rowCount": 6
},
"infoText": "成功!",
"infoCode": "0000"
}
}
[size=xx-small]
[/size]

解析:

/**
     * 分析服务器回传的json格式的数据,
     * 把解析后的数据放到List中
     */
List<ContentValues> jsonList = new ArrayList<ContentValues>();
@Override
public void readJSONObject(JSONObject jsonObject) throws Exception {
if(Log.LOGV) Log.d(TAG, "前:"+jsonObject.toString());
jsonObject = (JSONObject) jsonObject.get("resp");
if(Log.LOGV) Log.d(TAG, "后:"+jsonObject.toString());
if(Log.LOGV) Log.d(TAG, "———————服务器返回的searchresult的json—————————");
readJsonResult(jsonObject);
readJsonPage(jsonObject);
}

/**
* 解析搜索结果数据
* @param jsonObj
*/
private void readJsonResult(JSONObject jsonObj) {
if(Log.LOGV) Log.d(TAG, "******** result *********");
if(Log.LOGV) Log.d(TAG, jsonObj.toString());
try{
if(jsonObj.has("appVOList")){
JSONArray jsonArray = jsonObj.getJSONArray("appVOList");
        if(jsonArray.length() > 0){
        for(int i=0;i<jsonArray.length();i++){
        JSONObject jsonOj = jsonArray.getJSONObject(i);
        int appId = -1;
String appImgUrl = "";
String appName = "";
String appAuthor = "";
int appRate = -1;
if(jsonOj.has("msAppId")){
appId = jsonOj.getInt("msAppId");
}
if(jsonOj.has("appImgUrl")){
appImgUrl = jsonOj.getString("appImgUrl");
}
if(jsonOj.has("appName")){
appName = jsonOj.getString("appName");
}
if(jsonOj.has("appAuthor")){
appAuthor = jsonOj.getString("appAuthor");
}
if(jsonOj.has("appTJZS")){
appRate = jsonOj.getInt("appTJZS");
}
        ContentValues values = new ContentValues();
values.put(SearchResultMeta.APP_ID, appId);
values.put(SearchResultMeta.APP_IMG_URL, appImgUrl);
values.put(SearchResultMeta.APP_NAME, appName);
values.put(SearchResultMeta.APP_AUTHOR, appAuthor);
values.put(SearchResultMeta.APP_RATE, appRate);
jsonList.add(values);
if(Log.LOGV) Log.d(TAG, "SearchResultJson>>>" + " msAppId=" + appId + " appName=" + appName
+ " appAuthor=" + appAuthor + " appRate=" + appRate);
       
        }
        }else{
        if(Log.LOGV) Log.d(TAG, "服务器端无返回数据");
        }
}
}catch(Exception e){
e.printStackTrace();
}
}

/**
* 解析分页信息数据
* @param jsonObj
*/
privat