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+ "\n" ;
            }
            tvJson.setText(s);
        } catch (JSONException e) {
            System.out.println("Jsons parse error !");
            e.printStackTrace();
        }
    }
}

  

时间: 2024-11-22 19:09:31

android json和httpget的使用的相关文章

【转】android json解析及简单例子

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便

android json解析及简单例子(转载)

android json解析及简单例子 JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JS

android Json解析详解

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语 言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为– Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便

Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示

Android JSON原生解析的几种思路,以天气预报为例 今天项目中要实现一个天气的预览,加载的信息很多,字段也很多,所以理清了一下思路,准备独立出来写一个总结,这样对大家还是很有帮助的,老司机要开车了 涉及到网络,你就一定要先添加权限,准没错 <!--网络权限--> <uses-permission android:name="android.permission.INTERNET" /> 一.归属地查询(JSONObject) 这个也是最简单的一类Json

android:json解析的两个工具:Gson和Jackson的使用小例子

1.简介 json是android与服务器通信过程中常用的数据格式,例如,如下是一个json格式的字符串: {"address":"Nanjing","name":"NUPT","students":[{"name":"stu1","id":"10000","age":20},{"name"

Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例

Android JSON解析库Gson和Fast-json的使用对比和图书列表小案例 继上篇json解析,我用了原生的json解析,但是在有些情况下我们不得不承认,一些优秀的json解析框架确实十分的好用,今天我们为了博客的保质保量,也就不分开写,我们直接拿比较火的Gson和Fast-json来使用,末尾在进行一些分析 Android JSON原生解析的几种思路,以号码归属地,笑话大全,天气预报为例演示 一.各有千秋 两大解析库的东家都是巨头,一个来自于Google官方,一个来自阿里巴巴,我们这

android Json 解析 JSONObject JSONArray

android Json 解析  JSONObject JSONArray 我只解析了一个,不管有多少个都以此方法类推,加上http://blog.csdn.net/menglele1314/article/details/46324069里的JSONArray解析,可以应付一般所以的开发了 try { String value = "{\"result\":\"S\", \"address\":[{\"shengfen\&q

Android JSON: JSONArray cannot be converted to JSONObject

JSONArray  转换为 List<Map<String,String>> 报错 Android JSON: JSONArray cannot be converted to JSONObject 原代码 for (int i = 0; i < jsonArray.length(); i++) { JSONObject jsonObject = jsonArray.getJSONObject(i); System.out.println(jsonObject.getStr

Android json

JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换.JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为. – Json.org JSON Vs XML 1.JSON和XML的数据可读性基本相同 2.JSON和XML同样拥有丰富的解析手段 3.JSON相对于XML来讲,数据的体积小 4.JSON与JavaScript的交互更加方便