androidの获取天气预报JSON 实现
来源:互联网 发布:教育信息化数据标准 编辑:程序博客网 时间:2024/05/29 02:04
androidの获取天气预报JSON 实现
1. 首先推荐json格式检查工具http://www.bejson.com/
有效查询该json 格式是否合法
2. JSON中两种结构:对象和数组1)、对象:对象在js中表示为“{}”括起来的内容,数据结构为 {key:value,key:value,…}的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为 对象.key 获取属性值,这个属性值的类型可以是 数字、字符串、数组、对象几种。
2)、数组:数组在js中是中括号“[]”括起来的内容,数据结构为 [“java”,“javascript”,“vb”,…],取值方式和所有语言中一样,使用索引获取,字段值的类型可以是 数字、字符串、数组、对象几种。
(1)json对象格式1
{"name":"sam","age":18,"weight":60}
即为
{ "name": "sam", "age": 18, "weight": 60}解析方法:
JSONObject jsonObj;try { jsonObj = new JSONObject(str); String name = jsonObj.optString("name"); int age = jsonObj.optInt("age"); int weight = jsonObj.optInt("weight");} catch (JSONException e) { e.printStackTrace();
(2) JSON对象格式2
{"weatherinfo":{"city":"北京","cityid":"101010100","temp":"9","WD":"西南风", "WS":"2级","SD":"22%","WSE":"2","isRadar":"1","Radar":"JC_RADAR_AZ9010_JB","njd":"暂无实况","qy":"1014","time":"10:45"}}即为
{ "weatherinfo": { "city": "北京", "cityid": "101010100", "temp": "9", "WD": "西南风", "WS": "2级", "SD": "22%", "WSE": "2", "isRadar": "1", "Radar": "JC_RADAR_AZ9010_JB", "njd": "暂无实况", "qy": "1014", "time": "10:45" }}
解析方法:
JSONObject jsonObj;try {jsonObj = new JSONObject(str).getJSONObject("weatherinfo");int tmp = jsonObj.optInt("temp");String city=jsonObj.optString("city");} catch (JSONException e) {e.printStackTrace();}(3)JSON 数组格式
[12,13,15] //json2 一个数字数组
解析方法
解析方法
JSONArray jsonArray;try {jsonArray = new JSONArray(str);for (int i= 0; i < jsonArray.length();i++) { int age = jsonArray.optInt(i);}} catch (JSONException e) { e.printStackTrace();}(4)JSON复杂数据格式
[{"name":"sam","age":18},{"name":"leo","age":19},{"name":"sky", "age":20}]
即为
即为
[ { "name": "sam", "age": 18 }, { "name": "leo", "age": 19 }, { "name": "sky", "age": 20 }]解析方法:
JSONArray jsonArray;try {jsonArray = new JSONArray(str);for (int i= 0; i < jsonArray.length();i++) {JSONObject jsonObject = jsonArray.optJSONObject(i);String name = jsonObject.optString("name");int age = jsonObject.optInt("age");}} catch (JSONException e) {e.printStackTrace();}
获取当天天气状况利用json实现,如图
从网络端获取的json格式为:
{"city":"上海","date":"周一 02月02日 (实时:6℃)","dayPictureUrl":"http://api.map.baidu.com/images/weather/day/xiaoyu.png","nightPictureUrl":"http://api.map.baidu.com/images/weather/night/xiaoyu.png","temperature":"8 ~ 5℃","weather":"小雨","wind":"东北风微风"}
2. 具体代码实现
首先想到是利用线程执行网络访问,否则会出错的。
private void updateTodayWea() {new Thread() {@Overridepublic void run() {super.run();String str = Constants.server + ":8080/beastat/"+ "todaywea.jsp";strjson = Httputils.connServerForResult(str);if (strjson != null) {Message message = new Message();message.what = 0;handler.sendMessage(message);} else {Toast.makeText(MainActivity.this, "返回为空", 1000).show();}}}.start();}利用Handler 处理,发送消息过去。
但是,我们要获取url ,Httputils.connServerForResult(str); 返回json数据内容。
// 参数strUrlpublic static 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) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return strResult;}通过get 获取网络端数据,然后解析
以下是解析普通json数据过程。
// 普通Json数据解析private void parseJson(String strResult) {try {JSONObject jsonObj = new JSONObject(strResult);String city = jsonObj.getString("city");String date = jsonObj.getString("date");String temperature = jsonObj.getString("temperature");String weather = jsonObj.getString("weather");String wind = jsonObj.getString("wind");textview.setText("城市:" + city + " 时间:" + date + "\n天气:"+ weather + " 风:" + wind + " 温度:" + temperature);} catch (JSONException e) {System.out.println("Json parse error");e.printStackTrace();}}
0 0
- androidの获取天气预报JSON 实现
- 从网络获取json并解析得简单天气预报实现
- Android导入外部数据库解析json获取天气预报
- Android导入外部数据库解析json获取天气预报
- Android 使用Volly解析JSON数据获取天气预报
- Android天气预报(Json解析)
- 用json获取天气预报信息
- android json解析使用总结(二)-—天气预报的实现
- android json解析使用总结(二)-—天气预报的实现
- Android获取天气预报
- android 获取天气预报
- android 获取天气预报
- Android获取天气预报Demo
- 获取天气预报json接口(官方接口)
- QT中获取天气预报json数据
- 关于如何获取天气预报信息,JSON数据
- 获取天气预报json数据的api接口
- 【Android应用开发】-(17)获取Google天气预报通过Xml和JSON解析数据
- Hadoop学习(3)-Hadoop配置单机版
- UIImageView中播放动画
- sql anywhere 网络连接
- 背景和文字分离的matlab实现
- 微信开发(三)创建菜单
- androidの获取天气预报JSON 实现
- C语言中十进制以二进制形式输出
- C的0码
- 静态变量和全局变量的区别
- ANDROID文件关联之MIME TYPE
- 在gVIM中编译运行c/c++文件
- plupload上传文件中文名乱码
- android的Environment类 .
- mysql 整数类型