首页 > Web开发 > 详细

读取网站json并显示到Activity

时间:2019-04-19 22:18:52      阅读:172      评论:0      收藏:0      [点我收藏+]

1.首先写一段json , 上传到www.myjson.com

[
  {
    "CarId": 1,
    "UserName": "Z0001"
  },
  {
    "CarId": 2,
    "UserName": "Z0002"
  },
  {
    "CarId": 3,
    "UserName": "Z0003"
  }
]

 

技术分享图片

得到一个有我们已经写好的json网站

技术分享图片

2.完成了先前准备工作,现在打开Android studio

准备xml页面

技术分享图片

 

2.在manifest中需要加入允许网络权限

<uses-permission android:name="android.permission.INTERNET"></uses-permission>

3.编写获取JSON类,注意需要写在另一个线程中,如果在主线程中修改UI会导致程序崩溃
这里我们需要使用到的是异步进程 AsyncTask,参数都是无,就填Void就行了
AsyncTask 异步线程中有4个重要的方法需要被重写
onPreExecute()
onProgressUpdate()
onPostExecute()
*doInBackground() //在后台执行
   整体思路:
      1.保存url值
      2.连接url
      3.缓存读取到的内容
      4.用数组分别取出缓存的内容
public class fetchdata extends AsyncTask<Void,Void,Void> {
String data = "";
int Carid;
String Carnumber=null;
List<Integer> CarId_list = new ArrayList<>();
List<String> CarNumber_list = new ArrayList<>();

@Override
protected Void doInBackground(Void... voids) {
try {

URL url = new URL("https://api.myjson.com/bins/8beww");

HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();

InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

String temp = "";
while (temp != null){
temp = bufferedReader.readLine();
data = data + temp;
}

JSONArray jsonArray = new JSONArray(data);
for(int i=0;i<jsonArray.length();i++){
JSONObject object = jsonArray.getJSONObject(i);

Carid = object.getInt("CarId");
Carnumber = object.getString("UserName");

CarId_list.add(Carid);
CarNumber_list.add(Carnumber);
}

} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (JSONException e) {
e.printStackTrace();
}

return null;
}

@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);

for(int i=0;i<CarNumber_list.size();i++){
MainActivity.textView.append(CarId_list.get(i).toString()+" "+CarNumber_list.get(i)+"\n");

}
}


 

读取网站json并显示到Activity

原文:https://www.cnblogs.com/kevin162726/p/10733560.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!