android天气json数据,android JSON解析数据 android解析天气预报
概要
笔者近期做到对天气预报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;
@Override
protected 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() {
@Override
public 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() {
@Override
public void onErrorResponse(VolleyError error) {
Log.e("TAG", error.getMessage(), error);
}
});
mRequestQueue.add(mJsonObjectRequest);
}
}
activity_main.xml:
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp"
>
android:id="@+id/tv_main"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
/>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
android天气json数据,android JSON解析数据 android解析天气预报相关推荐
- Android 天气APP(十一)未来七天的天气预报、逐小时预报、UI优化
上一篇:Android 天气APP(十)下拉刷新页面天气数据 逐小时天气预报.UI优化 新版------------------- 一.UI优化 二.逐小时天气预报 ① 添加逐小时天气API ② 使用 ...
- android 天气动画,安卓实现旋转风车动画(仿华为天气预报)
旋转风车实现效果 实现方案 对于风车的立柱部分,采用一张固定背景图: 对于风车上面旋转部分,采用一张图,通过安卓属性动画进行旋转. 注意点: 因为是采用两张图叠加而形成的效果,所以需要注意调整两张图的 ...
- Android 天气APP(十)继续优化、下拉刷新页面天气数据
上一篇:Android 天气APP(九)细节优化.必应每日一图 修复每日一图,增加下拉刷新,滑动改变标题 新版------------------- 一.修复每日请求必应壁纸Bug 二.增加下拉刷新 ...
- Android 天气APP(十二)空气质量、UI优化调整
上一篇:Android 天气APP(十一)未来七天的天气预报.逐小时预报.UI优化 空气质量数据.UI优化 新版------------------- 一.自定义View 二.修改XML布局 三.添加 ...
- android JSON解析数据-解析天气预报
#概要 笔者近期做到对天气预报JSON数据解析,在此小记. 天气预报接口:http://wthrcdn.etouch.cn/weather_mini?citykey=101200101 JSON数据如 ...
- Android学习笔记44:JSON数据解析
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...
- android 解析网络数据(JSON)
解析json数据,获取你需要的信息 首先在manifest中添加允许访问网络的权限信息 <uses-permission android:name="android.permissio ...
- 一个简单的Android客户端从服务器端获取json数据并解析的实现代码
今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码代码如下: /** ...
- 『Android』网络请求数据与JSON解析
『Android』网络请求数据与JSON解析
最新文章
- 一行代码:你的纯文本秒变Markdown
- 《强化学习周刊》第2期:多智能体强化学习(MARL)赋能“AI智能时代”
- php artisan 命令列表
- JVM从入门到精通(六):JVM调优必备理论知识 - 3种垃圾清除算法,常见的垃圾回收器
- SNF平台从sql server兼容oracle的处理方式和开发方式
- 《游戏大师Chris Crawford谈互动叙事》一22.1 互动叙事前途无量
- 个人帐目管理系统java_Java 项目 个人帐目管理系统
- 屏幕空间环境光遮蔽(SSAO)算法的实现
- 服务器挂游戏用什么系统,挂游戏用什么云服务器
- Proxy error: Could not proxy request错误解决
- 数据结构上机实践第三周项目1
- Linux:CPU使用率100%排查方法
- 在C#中使用消息队列RabbitMQ
- 基于 OpenLayers3 实现的 HTML5 GIS 电信资源管理系统
- Win32窗口--XBox游戏手柄--C++--方向轮和按键捕获
- linux文件下生成一个文件,Linux系统下生成一个指定大小的文件要注意什么?
- 京东云视频云全面支持AVS2标准
- 在QQ音乐巅峰榜年度榜单中,听懂国人2022年的音乐记忆!
- 财务系统建设者须知——财务知识碎片(一) 什么是会计科目、什么是会计账户?
- 华为云冰山安全,让用户安心用云