我的编程空间,编程开发者的网络收藏夹
学习永远不晚

android JSON解析数据 android解析天气预报

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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<JSONObject>() {
   @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:


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:padding="10dp"
 >
 <TextView
 android:id="@+id/tv_main"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Hello World!"
 />
</LinearLayout>
您可能感兴趣的文章:Android编程简单解析JSON格式数据的方法示例Android使用OKHTTP解析JSON数据的实例代码Android 中对JSON数据解析实例代码Android解析json数据示例代码(三种方式)Android编程实现根据经纬度查询地址并对获取的json数据进行解析的方法Android之解析JSON数据示例(android原生态,FastJson,Gson)Android json数据解析详解及实例代码Android系列---JSON数据解析的实例Android利用Gson解析嵌套多层的Json的简单方法Android M(6.x)使用OkHttp包解析和发送JSON请求的教程Android解析JSON数据的方法分析Android json解析及简单例子android解析JSON数据Android中gson、jsonobject解析JSON的方法详解Android解析json数组对象的方法及Apply和数组的三个技巧Android随手笔记44之JSON数据解析Android学习笔记45之gson解析jsonandroid原生JSON解析实例


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

android JSON解析数据 android解析天气预报

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

android JSON解析数据 android解析天气预报

概要 笔者近期做到对天气预报JSON数据解析,在此小记。 天气预报接口:http://wthrcdn.etouch.cn/weather_minicitykey=101200101 JSON数据如下:{"desc": "OK","statu
2022-06-06

android JSON解析数据实现天气预报的方法

不懂android JSON解析数据实现天气预报的方法?其实想解决这个问题也不难,下面让小编带着大家一起学习怎么去解决,希望大家阅读完这篇文章后大所收获。JSON数据如下:{ "desc": "OK", "status": 1000, "d
2023-05-31

Android天气预报之基于HttpGet对象解析天气数据的方法

本文实例所述为Android天气预报之解析天气数据的代码,可实现获取HttpGet对象读取天气网站天气数据,并从数据中解析出天气数据,比如温度、温度、风力、风向、未来几天天气趋势、当天天气状况、空气污染指数等信息,还包括了调用对应的图片或天
2022-06-06

android调用国家气象局天气预报接口json数据格式解释

国家气象局提供了三种数据的形式 网址在: http://www.weather.com.cn/data/sk/101010100.html http://www.weather.com.cn/data/cityinfo/101010100.
2022-06-06

Android 天气预报(XML \ JSON); [ 导入gson包 ]

源码 [工程文件]:https://gitee.com/lwx001/WeatherXML :weather1.xml【res\raw目录下】 : raw中的文件会被自动解析、编译。通过raw目录找到相应的文件。20℃/30℃晴天多云上海8
2022-06-06

android解析JSON数据

JSONObject的使用 一、 JSON对象的使用:String content = "{'username': 'linux', 'password': '123456'}"; JSONObject jsonObject = new
2022-06-06

Android解析JSON数据的方法分析

本文实例讲述了Android解析JSON数据的方法。分享给大家供大家参考,具体如下: JSON作为一种“轻量”的数据结构传递数据,在JS中有广泛的应用 Google公司对JSON的解析提供了gson.jar这个包,它不依赖于其他任何JAR包
2022-06-06

Android系列---JSON数据解析的实例

上篇随笔详细介绍了三种解析服务器端传过来的xml数据格式,而对于服务器端来说,返回给客户端的数据格式一般分为html、xml和json这三种格式,那么本篇随笔将讲解一下json这个知识点,包括如何通过json-lib和gson这两个json
2022-06-06

Android中怎么解析JSON格式数据

这期内容当中小编将会给大家带来有关Android中怎么解析JSON格式数据,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。JSON格式 : { "name_A" : "value_A","name_B" :
2023-05-30

深入浅析Android JSON解析

JSON语法 首先看JSON的语法和结构,这样我们才知道怎么去解析它。JSON语法时JavaScript对象表示语法的子集。 JSON的值可以是: 数字(整数或者浮点数) 字符串(在双引号内) 逻辑值(true 或 false) 数组(使用
2022-06-06

android 解析json数据格式的方法

json数据格式解析我自己分为两种; 一种是普通的,一种是带有数组形式的; 普通形式的:服务器端返回的json数据格式如下:代码如下:{"userbean":{"Uid":"100196","Showname":"\u75af\u72c2\
2022-06-06

Android json数据解析详解及实例代码

Android json数据解析详解 移动开发经常要与服务器数据交互,也常使用json数据格式,那就说说Android json解析。1.最简单json格式解析如下://解析json ry { JSONTokener jsonPa
2022-06-06

android针对json数据解析方法实例分析

本文实例讲述了android针对json数据解析方法。分享给大家供大家参考。具体如下: JSON的定义: 一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今
2022-06-06

Android之解析JSON数据示例(android原生态,FastJson,Gson)

1.json网页代码<%@ page language="java" contentType="text/plain; charset=UTF-8"pageEncoding="UTF-8"%><%@page isELIgnored="fal
2022-06-06

Android随手笔记44之JSON数据解析

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式。本文将主要介绍在Android开发中,如何在服务器端创建JSON数据,以
2022-06-06

如何在Android项目中解析 json数据

今天就跟大家聊聊有关如何在Android项目中解析 json数据,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 Android json数据解析详解移动开发经常要与服务器数据交互,也
2023-05-31

android解析json数据的方法是什么

Android中解析JSON数据的方法有多种,下面列举了几种常用的方法:1. 使用JSONObject和JSONArray:首先将JSON数据转换为JSONObject或JSONArray对象,然后通过对应的get方法获取具体的值,例如:j
2023-10-18

Android 中对JSON数据解析实例代码

Android 中对JSON数据解析 在Android的网络编程中,JSON是比XML使用更为广泛的数据传输机制。在许多的http网络请求或接口调用中,返回的很多都是JSON。所以学会解析JSON是学会Android的基本技能。
2022-06-06

Android编程实现获取新浪天气预报数据的方法

本文实例讲述了Android编程实现获取新浪天气预报数据的方法。分享给大家供大家参考,具体如下: 新浪天气预报地址: http://php.weather.sina.com.cn/xml.phpcity=武汉&password=DJOYni
2022-06-06

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录