国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 解析JSON對象及實例說明

2020-04-11 12:29:02
字體:
來源:轉載
供稿:網友

JSON是一種輕量級的對象,數據體積小,方便傳輸,易于解析!

首先新建一個類工具類JsonUtil,用于獲取請求返回的數據

復制代碼 代碼如下:

public class JsonUtil {
 private static final String TAG = "JSONUTIL";
 public static JSONObject getJSON(String url) throws Exception {
  return new JSONObject(getRequest(url));
 }
 protected static String getRequest(String url) {
  return getRequest(url, new DefaultHttpClient(new BasicHttpParams()));
 }
 protected static String getRequest(String url, DefaultHttpClient client) {
  String result = null;
  int statusCode = 0;
  HttpGet httpGet = new HttpGet(url);
  try {
   HttpResponse httpResponse = client.execute(httpGet);
   statusCode = httpResponse.getStatusLine().getStatusCode();// statusCode為200時表示請求數據成功
   result = parseInputStream(httpResponse.getEntity());
  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  } finally {
   httpGet.abort();
  }
  return result;
 }
 private static String parseInputStream(HttpEntity entity) {
  StringBuilder sb = null;
  try {
   sb = new StringBuilder("");
   InputStream inputStream = entity.getContent();
   int length = 0;
   byte[] buffer = new byte[1024];
   while ((length = inputStream.read(buffer)) > -1) {
    sb.append(new String(buffer, 0, length));
   }
   return sb.toString();
  } catch (IllegalStateException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return sb.toString();
 }
}

獲取數據并解析數據:
注:模擬器訪問自己電腦上的網站不能用localhost:8080或者127.0.0.1:8080,因為模擬器默認將模擬器本身設定為localhost,所以如果設置為這樣的方式就將訪問模擬器本身。我們需要將主機名修改為10.0.2.2,此主機名是模擬器設定的特定的訪問自己電腦的主機名,它記錄了你的電腦的名稱。
另外:獲取數據需要將下面的方法封裝到一個新線程中,不能放在程序主線程當中!
復制代碼 代碼如下:

 /* http://10.0.2.2:8080/index.jsp
  * { students:[{name:'Livingstone',age:25},{name:'LS',age:26}], class:'09GIS' }
  */
 private void Livingstone() {
  try {
   String URL = "http://10.0.2.2:8080/index.jsp";
   // 獲取后臺返回的JSON對象 --> { students:[{name:'Livingstone',age:25},{name:'LS',age:26}],class:'09GIS班' }
   JSONObject jObj = JsonUtil.getJSON(URL);
   // 獲取學生數組 --> students:[{name:'Livingstone',age:25},{name:'LS',age:26}]
   JSONArray jArr = jObj.getJSONArray("students");
   // 獲取班級 --> class:'09GIS班'
   String classname = jObj.getString("class");
   // 根據索引獲取第一個學生的JSON對象 --> {name:'Livingstone',age:25}
   JSONObject j1 = jArr.getJSONObject(0);

   String studentInfo = jArr.length() + "個學生" + j1.getString("name")
     + j1.getInt("age");
  } catch (Exception e) {
   e.printStackTrace();
  }
 }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林市| 南丰县| 满城县| 都江堰市| 汤阴县| 彰化县| 林口县| 克山县| 常山县| 鄄城县| 台中县| 当雄县| 汉阴县| 湾仔区| 贵定县| 东莞市| 桂林市| 呼和浩特市| 资阳市| 河南省| 吐鲁番市| 长顺县| 彭阳县| 桐乡市| 麟游县| 宁都县| 香格里拉县| 洛隆县| 广西| 巩留县| 博乐市| 郧西县| 大余县| 隆林| 平阴县| 嵩明县| 永平县| 珲春市| 油尖旺区| 兴安盟| 伊金霍洛旗|