概要

笔者近期做到对天气预报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解析天气预报相关推荐

  1. Android 天气APP(十一)未来七天的天气预报、逐小时预报、UI优化

    上一篇:Android 天气APP(十)下拉刷新页面天气数据 逐小时天气预报.UI优化 新版------------------- 一.UI优化 二.逐小时天气预报 ① 添加逐小时天气API ② 使用 ...

  2. android 天气动画,安卓实现旋转风车动画(仿华为天气预报)

    旋转风车实现效果 实现方案 对于风车的立柱部分,采用一张固定背景图: 对于风车上面旋转部分,采用一张图,通过安卓属性动画进行旋转. 注意点: 因为是采用两张图叠加而形成的效果,所以需要注意调整两张图的 ...

  3. Android 天气APP(十)继续优化、下拉刷新页面天气数据

    上一篇:Android 天气APP(九)细节优化.必应每日一图 修复每日一图,增加下拉刷新,滑动改变标题 新版------------------- 一.修复每日请求必应壁纸Bug 二.增加下拉刷新 ...

  4. Android 天气APP(十二)空气质量、UI优化调整

    上一篇:Android 天气APP(十一)未来七天的天气预报.逐小时预报.UI优化 空气质量数据.UI优化 新版------------------- 一.自定义View 二.修改XML布局 三.添加 ...

  5. android JSON解析数据-解析天气预报

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

  6. Android学习笔记44:JSON数据解析

    JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. 本文将主要介绍在Android ...

  7. android 解析网络数据(JSON)

    解析json数据,获取你需要的信息 首先在manifest中添加允许访问网络的权限信息 <uses-permission android:name="android.permissio ...

  8. 一个简单的Android客户端从服务器端获取json数据并解析的实现代码

    今天总结一下android客户端从服务器端获取json数据的实现代码,需要的朋友可以参考下 首先客户端从服务器端获取json数据 1.利用HttpUrlConnection 复制代码代码如下: /** ...

  9. 『Android』网络请求数据与JSON解析

    『Android』网络请求数据与JSON解析

最新文章

  1. 一行代码:你的纯文本秒变Markdown
  2. 《强化学习周刊》第2期:多智能体强化学习(MARL)赋能“AI智能时代”
  3. php artisan 命令列表
  4. JVM从入门到精通(六):JVM调优必备理论知识 - 3种垃圾清除算法,常见的垃圾回收器
  5. SNF平台从sql server兼容oracle的处理方式和开发方式
  6. 《游戏大师Chris Crawford谈互动叙事》一22.1 互动叙事前途无量
  7. 个人帐目管理系统java_Java 项目 个人帐目管理系统
  8. 屏幕空间环境光遮蔽(SSAO)算法的实现
  9. 服务器挂游戏用什么系统,挂游戏用什么云服务器
  10. Proxy error: Could not proxy request错误解决
  11. 数据结构上机实践第三周项目1
  12. Linux:CPU使用率100%排查方法
  13. 在C#中使用消息队列RabbitMQ
  14. 基于 OpenLayers3 实现的 HTML5 GIS 电信资源管理系统
  15. Win32窗口--XBox游戏手柄--C++--方向轮和按键捕获
  16. linux文件下生成一个文件,Linux系统下生成一个指定大小的文件要注意什么?
  17. 京东云视频云全面支持AVS2标准
  18. 在QQ音乐巅峰榜年度榜单中,听懂国人2022年的音乐记忆!
  19. 财务系统建设者须知——财务知识碎片(一) 什么是会计科目、什么是会计账户?
  20. 华为云冰山安全,让用户安心用云

热门文章

  1. 2022.1.13小记
  2. 个人订阅号的崛起:通过“粉丝圈”吸引用户眼球,日涨粉过百!
  3. 热血三国1年2500w
  4. 设置CentOS7时间与网络时间同步
  5. html5锚点自动定位,锚点定位总结html5属性大全
  6. 为什么定位不了HTML,css 锚点定位不了
  7. LeetCode658
  8. Delta Lake 时间旅行(12)
  9. 计算机应用700字自我鉴定,计算机及应用专业自我鉴定范文700字
  10. http 协议的交互过程详细分析。