#概要
笔者近期做到对天气预报JSON数据解析,在此小记。
天气预报接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101200101
JSON数据如下:

{"desc": "OK","status": 1000,"data": {"wendu": "14","ganmao": "天气转凉,空气湿度较大,较易发生感冒,体质较弱的朋友请注意适当防护。","forecast": [{"fengxiang": "无持续风向","fengli": "微风级","high": "高温 17℃","type": "小雨","low": "低温 10℃","date": "30日星期四"},{"fengxiang": "无持续风向","fengli": "微风级","high": "高温 18℃","type": "多云","low": "低温 7℃","date": "31日星期五"},{"fengxiang": "无持续风向","fengli": "微风级","high": "高温 20℃","type": "晴","low": "低温 8℃","date": "1日星期六"},{"fengxiang": "无持续风向","fengli": "微风级","high": "高温 23℃","type": "晴","low": "低温 10℃","date": "2日星期天"},{"fengxiang": "无持续风向","fengli": "微风级","high": "高温 23℃","type": "多云","low": "低温 12℃","date": "3日星期一"}],"yesterday": {"fl": "微风","fx": "无持续风向","high": "高温 21℃","type": "阴","low": "低温 12℃","date": "29日星期三"},"aqi": "114","city": "武汉"}
}

最终解析效果:

#解析概述
1、首先,接到的整个数据可以转化为JSONObject对象。
2、通过整个数据的JSONObject对象获取到data中的数据,也是一个JSONObject对象。在data中就可以获取到此时温度,以及城市等信息。
3、通过data的JSONObject对象可以获取到forecast中的数据,forecast中的数据则是一个JSONArray对象。
4、通过forecast的JSONArray对象可以获取到近几天的天气信息,每一条为一个JSONObject对象。

#代码
方便起见,笔者使用了volley框架,读者新建项目需要在build.gradle的dependencies中添加如下:

compile 'eu.the4thfloor.volley:com.android.volley:2015.05.28'

MainActivity.java:

package com.example.double2.jsontext;import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.TextView;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.JsonObjectRequest;
import com.android.volley.toolbox.Volley;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;public class MainActivity extends AppCompatActivity {private TextView tvMain;private RequestQueue mRequestQueue;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {tvMain = (TextView) findViewById(R.id.tv_main);mRequestQueue = Volley.newRequestQueue(this);JsonObjectRequest mJsonObjectRequest = new JsonObjectRequest("http://wthrcdn.etouch.cn/weather_mini?citykey=101200101",null,new Response.Listener<JSONObject>() {@Overridepublic void onResponse(JSONObject response) {try {JSONObject data = new JSONObject(response.getString("data"));JSONArray forecast = data.getJSONArray("forecast");JSONObject todayWeather = forecast.getJSONObject(0);String wendu = data.getString("wendu") + "\n";String ganmao = data.getString("ganmao") + "\n";String high = todayWeather.getString("high") + "\n";String low = todayWeather.getString("low") + "\n";String date = todayWeather.getString("date") + "\n";String city = data.getString("city") + "\n";tvMain.setText(wendu + ganmao + high + low + date+city);} catch (JSONException e) {e.printStackTrace();}}}, new Response.ErrorListener() {@Overridepublic void onErrorResponse(VolleyError error) {Log.e("TAG", error.getMessage(), error);}});mRequestQueue.add(mJsonObjectRequest);}}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:padding="10dp"><TextViewandroid:id="@+id/tv_main"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="Hello World!"/></LinearLayout>

android JSON解析数据-解析天气预报相关推荐

  1. Android网络之数据解析----SAX方式解析XML数据

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  2. Android中XML数据解析

    转载请注明出处:http://blog.csdn.net/yegongheng/article/details/38296207 XML初步 今天我们来学习另一种非常重要的数据交换格式-XML.XML ...

  3. Android Json生成及解析实例

    JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性.业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据 ...

  4. Json格式数据解析

    一.简介 XML这种数据格式.XML的特点是功能全面,但标签繁琐,格式复杂.在Web上使用XML现在越来越少,取而代之的是JSON这种数据结构. JSON是JavaScript Object Nota ...

  5. json数据解析 android,Android基础之json数据解析

    这次来聊聊Android中json数据的解析,既然是基础就要求只要你看一遍就必须会的,不牵涉到太多的复杂逻辑,目的就是让你初步认识json数据的解析和学会对简单的json数据进行解析. 首先第一步我们 ...

  6. 一起来开发Android的天气软件(四)——使用Gson解析数据

    离上一篇文章过去才4.5天,我们赶紧趁热打铁继续完成该系列的天气软件的开发.承接上一章的内容使用Volley实现网络的通信,返回给我们的是这一串Json数据{"weatherinfo&quo ...

  7. 【Python】json数据解析

    目录 json文件数据解析 爬虫获取王者荣耀英雄信息json数据包并解析 爬虫获取抖音视频json数据包并解析 json文件数据解析 json字符串:通常类似python数据类型中的列表和字典的结合, ...

  8. python初学者教程我要自学网-我要自学网--json 数据解析-python。

    python可以使用json数据模块对json 进行数据解析. json.dump(): 将python数据装换为json数据. json.load(0: 将json数据装换为python数据. py ...

  9. python教程我要自学网-我要自学网--json 数据解析-python。

    python可以使用json数据模块对json 进行数据解析. json.dump(): 将python数据装换为json数据. json.load(0: 将json数据装换为python数据. py ...

最新文章

  1. python3.8还是3.7_选择 Python3.6 还是 Python 3.7
  2. stm32 复位到内部bootloader
  3. 下载 6g 概念及愿景白皮书_6G,到底有多6?6G概念及愿景白皮书正式发布!
  4. VMWare 8 安装 Mac OS 10.7 (Lion)版 【转】
  5. C#开发MySQL数据库程序时需要注意的几点
  6. IOC容器-Autofac在MVC中实现json方式注入使用
  7. 配置管理基本概念、配置管理计划、配置管理主要活动
  8. sublime text3之使用等宽字体
  9. 深度学习面试题100题
  10. 记实现多racecar仿真过程中遇到的问题(一)
  11. mysql查询不到的数据补0
  12. 前端用到的单词(读音+意思)
  13. iOS 10诸如相机、相册、通讯录、麦克风、定位权限设置,防止奔溃或上架被拒
  14. python二级考试难不难_计算机二级python考试难吗
  15. ParameterResolutionException单元测试方法中添加了参数,这是不允许的
  16. CSS几种定位的使用
  17. 全国计算机考试选择题有什么技巧,2020年3月全国计算机等级考试各题型应试技巧...
  18. JMeter开发一个最简单的Sampler
  19. 云豹短视频app源码中关于php--thinkcmf配置语言包的说明
  20. 返利网PHP面试_【返利网PHP面试】面试不算难 但是公司的办事奇怪-看准网

热门文章

  1. 仿“香哈菜谱”微信小程序(第4章)
  2. div位置大小不随浏览器变化而变化
  3. 春季养肝正当时 教你做杏仁露
  4. 4款不错的UI设计软件推荐
  5. 中信银行柜员岗面试总结
  6. thinkphp3.1.3 getshell_C# / VB.NET 在PPT中创建、编辑PPT SmartArt图形的方法详解_C#教程...
  7. 半导体器件物理-MOS电容部分
  8. 云财经智能炒股手环 6大实用功能帮助股民高效炒股
  9. 推荐信号与系统、信号处理书籍的个人看法
  10. Windows Socket 1.1库函数参考大全