您的位置:首页 > 理论基础 > 计算机网络

android端获取网络json格式动态生成二维数组

2013-02-22 11:56 369 查看
需要在android端动态获取二维数组,数组大小由服务端数据动态确定

/**
* 获取子项目方法
*
* @return
*/
private String[][] getItemChild(String urlPath) {
String[] arr1, arr2, arr3;
String[][] arrTwo = null;
// 从网页获取数据
ArrayList<String> list1, list2, list3;

HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(urlPath);
try {
InputStream responseStream = client.execute(post).getEntity()
.getContent();
// 记得转换成gbk编码
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(responseStream, "UTF-8"));
String webContentString = bufferedReader.readLine();
// json解析**************************

JSONObject object = new JSONObject(webContentString);

JSONArray array1 = object.getJSONArray("item1");
JSONArray array2 = object.getJSONArray("item2");
JSONArray array3 = object.getJSONArray("item3");

arrTwo = new String[3][];

// json转成list
list1 = getListValue(array1);
list2 = getListValue(array2);
list3 = getListValue(array3);

// 转成一维数组
arr1 = getArrayValue(list1);
arr2 = getArrayValue(list2);
arr3 = getArrayValue(list3);

// 用arraylis存儲得到的非空list
ArrayList<String[]> list = new ArrayList<String[]>();
if (arr1 != null && arr1.length != 0) {
list.add(arr1);
}
if (arr2 != null && arr2.length != 0) {
list.add(arr2);
}
if (arr3 != null && arr3.length != 0) {
list.add(arr3);
}
// 動態生成二維數組
int count = 0;
for (int i = 0; i < list.size(); i++) {
arrTwo[count++] = list.get(i);
//				count++;
}
// 测试打印二维数组的每一行
//			printOne(arrTwo[0]);
//			printOne(arrTwo[1]);
//			printOne(arrTwo[2]);

//			printTwo(arrTwo);

} catch (Exception e) {
System.out.println("解析子项目出错!");
}
return arrTwo;
}


/**
* jsonarray格式转成list格式,若为空返回null
* @param array2
* @return
* @throws JSONException
*/
private ArrayList<String> getListValue(JSONArray array2)
throws JSONException {
ArrayList<String> list = new ArrayList<String>();
if (array2 == null) {
return list;
}
return json2list(array2);
}
// ArrayList转成一维数组
private String[] getArrayValue(ArrayList<String> list2) {
String str[] = new String[0];
if (list2 != null) {
str = list2.toArray(new String[list2.size()]);
}
return str;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐