zoukankan      html  css  js  c++  java
  • Android开发之从网络URL上下载JSON数据

    网络下载拉取数据中,json数据是一种格式化的xml数据,非常轻量方便,效率高,体验好等优点,下面就android中如何从给定的url下载json数据给予解析:

    主要使用http请求方法,并用到HttpGet和HttpResponse等对象来获取数据。直接上实例代码吧:、

    (1)从网络URL上读取json字符串的实现

    public String readJSONFeed(String url){
            StringBuilder stringBuilder = new StringBuilder();
            HttpClient client = new DefaultHttpClient();
            HttpGet httpGet = new HttpGet(url);
            HttpResponse response;
            try {
                response = client.execute(httpGet);
                StatusLine statusLine = response.getStatusLine();
                int statusCode = statusLine.getStatusCode();
                if(statusCode == 200){
                    HttpEntity entity = response.getEntity();
                    InputStream content = entity.getContent();
                    BufferedReader reader = new BufferedReader(
                            new InputStreamReader(content));
                    String line ;
                    while((line = reader.readLine())!=null){
                        stringBuilder.append(line);
                    }
                }else{
                    Log.e("JSON", "Failed to download file");
                }
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return stringBuilder.toString();
        }

    (2)异步方法拉取网络上的数据的实现:

    private class ReadJSONFeedTask extends AsyncTask<String, Void, String>{
    
            StringBuilder stringBuilder  = new StringBuilder();
            @Override
            protected String doInBackground(String... urls) {
                // TODO Auto-generated method stub
                return readJSONFeed(urls[0]);
            }
    
            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                String strItem;
                try {
                    JSONArray jsonArray = new JSONArray(result);
                    for(int i = 0;i<jsonArray.length();i++){
                        JSONObject jsonObject = jsonArray.getJSONObject(i);
                        strItem= jsonObject.getString("appeId")+
                                " - "+jsonObject.getString("inputTime") +"
    ";
                        stringBuilder.append(strItem);
                    }
                    ((TextView)findViewById(R.id.tvJson)).setText(stringBuilder.toString());
                } catch (JSONException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                
            }
            
        }

    (3)最后如何启一个异步下载任务呢?其实就是new一个上面的异步类对象并执行即可

    new ReadJSONFeedTask().execute(jsonUrl);

    到此为止,从网络URL上下载json数据已经成功完成了。最后下载后的数据显示结果如下:

  • 相关阅读:
    系统架构图
    数据分析学习一
    ASP.NET Web APIs 基于令牌TOKEN验证的实现(保存到DB的Token)
    Web API 令牌(秘钥是双方约定的,并不在网络连接上传输)
    【MVC】ASP.NET MVC Forms验证机制
    细说ASP.NET Forms身份认证
    MVC身份验证及权限管理
    [置顶] Web用户的身份验证及WebApi权限验证流程的设计和实现 (不是Token驗證!!!不是Token驗證!!!都是基於用户身份的票据信息驗證!!!)
    WebApi安全性 使用TOKEN+签名验证 (秘钥是GUID的,私有的,不是雙方的,并不在网络连接上传输)
    WebService 简单安全验证
  • 原文地址:https://www.cnblogs.com/JczmDeveloper/p/3858350.html
Copyright © 2011-2022 走看看