需要在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;
	}



GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:2 个月前 )
960b763e 5 个月前
8c391e04 8 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐