Json与聚合数据不解之缘<->

来源:互联网 发布:阿里云国际注册方法 编辑:程序博客网 时间:2024/05/17 02:42

一提到聚合,相信大家应该都不是很陌生了,可能在此之前有的会有和风天气预报接口或者是WebService等等,今天我就是想跟大家分享下聚合数据,主要包括以下类型数据http://blog.csdn.net/qq_15950325/article/details/52773800

生活/天气/健康 常用快递 全国天气预报 车辆/出行 全国车辆违章 全国公交及路径规划查询 金融基金 货币汇率 银行卡三元素检测      通讯/位置 短信API服务 移动联通基站 充值/礼品卡 话费充值 京东E卡 娱乐/体育/问答 笑话大全 NBA赛事 开发工具      问答机器人 Alexa网站排名等等
  • 1
  • 2
  • 3

首先注册一个账号,跟大多数平台一样可以用邮箱或者手机号码,当然也是支持第三方登录的,这里是聚合平台官网 
这里写图片描述
首先说下号码归属地查询 
APPKEY:dd9299240289067801d58e87e4fa3f53 
接口:http://apis.juhe.cn/mobile/get?phone=156731546236&key=dd9299240289067801d58e87e4fa3f53

得到的json如下图所示 
这里写图片描述 
可能有些人会问这个工具叫什么,[HiJson](http://example.com/ )非常好用,主要用于json数据格式化非常方便我这里的版本是2.1.2 
这里写图片描述 
下面要做一些准备工作我们需要两个jar包一个是网络[Volley](https://github.com/adamrocker/volley ) 
需要下载点击此链接,本着开源的精神免费哈! 
下面进入主题首先获取手机号码然后显示手机归属地信息 
具体代码如下

String url = “http://apis.juhe.cn/mobile/get?phone=” + et_phoneNum+ 
“&key=dd9299240289067801d58e87e4fa3f53”;

这里是测试接口返回成功信息

/***get请求方式/* private void Volley_Get() {      String url = "http://apis.juhe.cn/mobile/get?phone=" + et_phoneNum                 + "&key=dd9299240289067801d58e87e4fa3f53";      //创建一个新的请求       mRequestQueue = Volley.newRequestQueue(this);       //请求方式为get url 成功返回数据 失败返回错误信息       StringRequest request = new StringRequest(Method.GET, postUrl,                new Response.Listener<String>() {                    // 成功返回json数据                    @Override                    public void onResponse(String json) {                        Log.i("Json", json);                        Volley_Json(json);                    }                }, new Response.ErrorListener() {            // 失败返回错误信息            @Override            public void onErrorResponse(VolleyError errorLog) {                Log.e("Error", errorLog.toString());            }        });        //将请求队列添加进来       mRequestQueue.add(request);    }    请求测试接口如下图所示请求成功返回信息   ![这里写图片描述](http://img.blog.csdn.net/20161010005546697)   效果图 将解析json数据显示到TextView中去 private void Volley_Json(String json) {       try {           JSONObject jsonObject = new JSONObject(json);           JSONObject object = jsonObject.getJSONObject("result");           tv_result.setText("归属地:" + object.getString("province") + "-"                   + object.getString("city") + "\n" + "区号:" + object.getString("areacode")                   + "\n" + "运营商:" + object.getString("company")                   + "\n" + "用户类型:" + object.getString("card"));       } catch (JSONException e) {           // TODO Auto-generated catch block           e.printStackTrace();       }   }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

效果如下图 
这里写图片描述

下面介绍下笑话大全

接口地址: String url= “http://japi.juhe.cn/joke/content/list.from?key=a0b146e593051ad8d5428699d89fc4f0&page=1&pagesize=1&sort=asc&time=1418814837“; 
APPKEY:a0b146e593051ad8d5428699d89fc4f0` 
测试接口成功返回信息 
这里写图片描述
实现代码如下

/***get请求方式/* private void Volley_Get() {       String url= "http://japi.juhe.cn/joke/content/list.from?key=a0b146e593051ad8d5428699d89fc4f0&page=1&pagesize=1&sort=asc&time=1418814837";      //创建一个新的请求       mRequestQueue = Volley.newRequestQueue(this);       //请求方式为get url 成功返回数据 失败返回错误信息       StringRequest request = new StringRequest(Method.GET, postUrl,                new Response.Listener<String>() {                    // 成功返回json数据                    @Override                    public void onResponse(String json) {                        Log.i("Json", json);                        Volley_Json2(json);                    }                }, new Response.ErrorListener() {            // 失败返回错误信息            @Override            public void onErrorResponse(VolleyError errorLog) {                Log.e("Error", errorLog.toString());            }        });        //将请求队列添加进来       mRequestQueue.add(request);    }然后是返回json数据显示在TextView中代码如下  private void Volley_Json2(String json) {      try {          //创建一个JSONObject对象          JSONObject jsonObject = new JSONObject(json);          //获取json返回result          JSONObject jsonObject2 = jsonObject.getJSONObject("result");          JSONArray ja = jsonObject2.getJSONArray("data");          //遍历笑话大全内容          for (int i = 0; i < ja.length(); i++) {              JSONObject jsonObject3 = (JSONObject) ja.get(i); //将返回json数据显示在TextView中来             tv_result.setText(jsonObject3.getString("content").toString());          }      } catch (JSONException e) {          // TODO Auto-generated catch block          e.printStackTrace();      }  }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

效果如下图所示

还有最后一个关于邮政编码查询,其实原理都差不多,大同小异 
具体代码如下

接口地址:”http://v.juhe.cn/postcode/query?postcode=215001&key=4a7b13e98585e7605f0b54bd52cc1217“; 
key:4a7b13e98585e7605f0b54bd52cc1217

这里是测试接口返回成功信息]![这里写图片描述

/***get请求方式/* private void Volley_Get() {        String postUrl="http://v.juhe.cn/postcode/query?postcode=215001&key=4a7b13e98585e7605f0b54bd52cc1217";      //创建一个新的请求       mRequestQueue = Volley.newRequestQueue(this);       //请求方式为get url 成功返回数据 失败返回错误信息       StringRequest request = new StringRequest(Method.GET, postUrl,                new Response.Listener<String>() {                    // 成功返回json数据                    @Override                    public void onResponse(String json) {                        Log.i("Json", json);                        Volley_Json4(json);                    }                }, new Response.ErrorListener() {            // 失败返回错误信息            @Override            public void onErrorResponse(VolleyError errorLog) {                Log.e("Error", errorLog.toString());            }        });        //将请求队列添加进来       mRequestQueue.add(request);    }    请求测试接口如下图所示请求成功返回信息   ![这里写图片描述](http://img.blog.csdn.net/20161010005546697)   效果图 将解析json数据显示到TextView中去 private void Volley_Json4(String json) {         try {                  JSONObject jsonObject = new JSONObject(json);                  JSONObject jsonObject2 = jsonObject.getJSONObject("result");                  JSONArray ja = jsonObject2.getJSONArray("list");                  for (int i = 0; i < ja.length(); i++) {                      JSONObject jsonObject3 = (JSONObject) ja.get(i);                      tv_result.setText("地址:"+jsonObject3.getString("Address").toString()+"\n"+"城市:"+jsonObject3.getString("City")+"\n"+"街道:"+jsonObject3.getString("District")+"\n"+"邮政编码:"+jsonObject3.getString("PostNumber")+"\n"+"省份:"+jsonObject3.getString("Province"));                  }              } catch (JSONException e) {                  // TODO Auto-generated catch block                  e.printStackTrace();              }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45

效果如下图所示 
这里写图片描述 
到这里是不是感觉很简单,对不对, 
最后一步千万不要忘记添加网络权限

<!--千万记得添加网络访问权限--><uses-permission  android:name="android.permission.INTERNET"/>
  • 1
  • 2
  • 3

网络需要申请key我申请的数据如下所以你必须自己申请数据然后把对应key替换掉,另外有些需要上传身份证正反面照片,你自己拍照添加记行了!然后审核一般需要几分钟!操作简单!

我申请的数据如下图在左边可以查看你自己申请的数据 
这里写图片描述

查看数据

这里写图片描述

总结下主要分为以下三步 
第一步 首先准备好jar一个网络Volley异步请求jar包 
第二步在官方注册账号申请新数据然后将对应的key复制过来 
第三步进行接口测试看请求是否成功,然后通过JsonObject或者JSonArray然后进行遍历数据,最后将返回的数据显示在TextView中 
有疑问的小伙伴记得加群扫码直接加入另外转载请注明出处!json谢谢合作!![这里写图片描述](![这里写图片描述] 

0 0