首页 > 技术文章 > 使用JsonObject 与JsonArray

wsfjlagr 2013-08-18 00:06 原文

我们需要解析的是下面的数据:

 

 {

    "jdinfo": [
        {
            "JD_id": "001",
            "JD_Name": null,
            "JD_Image": "Address 11",
            "JD_Start": "col4 data",
            "JD_Zan": "col4 data",
            "JD_Cai": "col4 data",
            "JD_MenPiao": "col4 data",
            "JD_Introduce": "col4 data",
            "JD_Call": "col4 data",
            "JD_SignInNum": "col4 data",
            "comments": [
                {
                    "userID": "1",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "2",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "3",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                }
            ]
        },
        {
            "JD_id": "001",
            "JD_Name": null,
            "JD_Image": "Address 11",
            "JD_Start": "col4 data",
            "JD_Zan": "col4 data",
            "JD_Cai": "col4 data",
            "JD_MenPiao": "col4 data",
            "JD_Introduce": "col4 data",
            "JD_Call": "col4 data",
            "JD_SignInNum": "col4 data",
            "comments": [
                {
                    "userID": "1",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "2",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "3",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                }
            ]
        },
        {
            "JD_id": "001",
            "JD_Name": null,
            "JD_Image": "Address 11",
            "JD_Start": "col4 data",
            "JD_Zan": "col4 data",
            "JD_Cai": "col4 data",
            "JD_MenPiao": "col4 data",
            "JD_Introduce": "col4 data",
            "JD_Call": "col4 data",
            "JD_SignInNum": "col4 data",
            "comments": [
                {
                    "userID": "1",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "2",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                },
                {
                    "userID": "3",
                    "vistorID": "1",
                    "number": "123",
                    "NetFriendsNum": "col4 data",
                    "NetFriendsAssess": "col4 data",
                    "NetFriendsImg": "col4 data",
                    "NetFriendsName": "col4 data",
                    "SignInTime": "col4 data",
                    "NetPersonAssessNum": "col4 data",
                    "Date": "col4 data",
                    "UserName": "col4 data",
                    "UserLevel": "col4 data",
                    "AssessNum": "col4 data",
                    "AssessStart": "col4 data"
                }
            ]
        }
    ]
}

 

 

以上的数据有两层,我的处理方式是,先取到第一层数据,如下为处理这一段数据的示例代码

  

  List<Guider> list = new ArrayList<Guider>();

try {
HttpClient httpclient = new DefaultHttpClient();
HttpGet httppost = new HttpGet(params[0]);
HttpResponse http_response = httpclient.execute(httppost);
if (http_response.getStatusLine().getStatusCode() == 200) {
String jsonstring = EntityUtils.toString(
http_response.getEntity(), "utf-8");
Log.i("net", "jsonstring---->" + jsonstring);
// 将服务器拿来的数据转换成jsonObject
JSONObject jsobject = new JSONObject(jsonstring);
// 再转换成array
JSONArray jsonArray = jsobject.getJSONArray("jdinfo");
Log.i("net", "jsonArray---->" + (jsonArray == null)
+ " arraysize-->" + jsonArray.length());
if (jsonArray != null) {
Guider guiderVo = null;
// JSONArray jsonArray=jsobject.getJSONArray("jdinfo");
for (int i = 0; i < jsonArray.length(); i++) {
Log.i("net", "第---->" + i);
JSONObject guider = jsonArray.getJSONObject(i);
Iterator<String> iterator = guider.keys();
while (iterator.hasNext()) {
String key = iterator.next();// 找到此对象的Key
Object object = guider.get(key); // 根据key取得值
Log.i("net", "JD   key--->" + key + "   object--->"
+ object.toString());
String str = object.toString();
if (key.equals("comments")) {//找到二级标签
try {
JSONArray js3 = new JSONArray(str);
for (int j = 0; j < js3.length(); j++) {
JSONObject coment_object = js3
.getJSONObject(j);
Iterator<String> iterator_comment = coment_object.keys();
while (iterator_comment.hasNext()) {
String coment_key = iterator_comment
.next();
Object comment_value = coment_object
.getString(coment_key);
Log.i("net",
"comment---->    key-->"
+ coment_key
+ "  value---->"
+ comment_value
.toString());
}
}
Log.i("net",
"js3----->lengh  " + js3.length());
} catch (Exception e) {
Log.i("net", "js3----->" + e.toString());
}
}
Log.i("net", "guider---->" + (guider == null));
guiderVo = new Guider();
}
}
list.add(guiderVo);
}
}
} catch (Exception e) {
// TODO: handle exception
Log.i("new", "jsonError----------->" + e);
}
return list;

 

 

 

处理代码结果: 

 

 

第二层处理结果 

 

 


推荐阅读