• android json和httpget的使用


    public class JsonActivity extends Activity { 
        /** Called when the activity is first created. */ 
        private TextView tvJson; 
        private Button btnJson; 
        private Button btnJsonMulti; 
        @Override 
        public void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.main); 
            tvJson = (TextView) this.findViewById(R.id.tvJson); 
            btnJson = (Button) this.findViewById(R.id.btnJson); 
            btnJsonMulti = (Button) this.findViewById(R.id.btnJsonMulti); 
            btnJson.setOnClickListener(new View.OnClickListener() { 
                @Override 
                public void onClick(View v) { 
                    // url 
                    // String strUrl = "http://10.158.166.110:8080/AndroidServer/JsonServlet"; 
                    String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGER); 
                    //获得返回的Json字符串 
                    String strResult = connServerForResult(strUrl); 
                    //解析Json字符串 
                    parseJson(strResult); 
                } 
            }); 
            btnJsonMulti.setOnClickListener(new View.OnClickListener() { 
                @Override 
                public void onClick(View v) { 
                    String strUrl = ServerPageUtil.getStrUrl(UrlsOfServer.JSON_SINGERS); 
                    String strResult = connServerForResult(strUrl); 
                    //获得多个Singer 
                    parseJsonMulti(strResult); 
                } 
            }); 
        } 
        private String connServerForResult(String strUrl) { 
            // HttpGet对象 
            HttpGet httpRequest = new HttpGet(strUrl); 
            String strResult = ""; 
            try { 
                // HttpClient对象 
                HttpClient httpClient = new DefaultHttpClient(); 
                // 获得HttpResponse对象 
                HttpResponse httpResponse = httpClient.execute(httpRequest); 
                if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { 
                    // 取得返回的数据 
                    strResult = EntityUtils.toString(httpResponse.getEntity()); 
                } 
            } catch (ClientProtocolException e) { 
                tvJson.setText("protocol error"); 
                e.printStackTrace(); 
            } catch (IOException e) { 
                tvJson.setText("IO error"); 
                e.printStackTrace(); 
            } 
            return strResult; 
        } 
        // 普通Json数据解析 
        private void parseJson(String strResult) { 
            try { 
                JSONObject jsonObj = new JSONObject(strResult).getJSONObject("singer"); 
                int id = jsonObj.getInt("id"); 
                String name = jsonObj.getString("name"); 
                String gender = jsonObj.getString("gender"); 
                tvJson.setText("ID号"+id + ", 姓名:" + name + ",性别:" + gender); 
            } catch (JSONException e) { 
                System.out.println("Json parse error"); 
                e.printStackTrace(); 
            } 
        } 
        //解析多个数据的Json
        private void parseJsonMulti(String strResult) { 
            try { 
                JSONArray jsonObjs = new JSONObject(strResult).getJSONArray("singers"); 
                String s = ""; 
                for(int i = 0; i < jsonObjs.length() ; i++){ 
                    JSONObject jsonObj = ((JSONObject)jsonObjs.opt(i)) 
                    .getJSONObject("singer"); 
                    int id = jsonObj.getInt("id"); 
                    String name = jsonObj.getString("name"); 
                    String gender = jsonObj.getString("gender"); 
                    s +=  "ID号"+id + ", 姓名:" + name + ",性别:" + gender+ "
    " ; 
                } 
                tvJson.setText(s); 
            } catch (JSONException e) { 
                System.out.println("Jsons parse error !"); 
                e.printStackTrace(); 
            } 
        } 
    } 
    

      

  • 相关阅读:
    java nb
    hdu5293(2015多校1)--Tree chain problem(树状dp)
    点击交互的四种处理
    Java实现二维码技术探讨。
    折腾开源WRT的AC无线路由之路-1
    C语言及程序设计[套餐]课程主页
    09_Android中ContentProvider和Sqllite混合操作,一个项目调用另外一个项目的ContentProvider
    C语言打印字母金字塔(第一行是A 第二行是ABA ……)
    成员函数的const究竟修饰的是谁
    linux pdb调试总结
  • 原文地址:https://www.cnblogs.com/youyuan1980/p/4081578.html
Copyright © 2020-2023  润新知