天气 JSON 数据解析

 package com.example.weather_json.tools;

 import java.util.ArrayList;
import java.util.List; import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject; import com.example.weather_json.Entity.Results;
import com.example.weather_json.Entity.WeatherData;
import com.example.weather_json.Entity.WeatherInfo; public class JsonTools {
public static WeatherInfo MyGetJSON(String jsonString) throws JSONException {
List<Results> listResults = null;
List<WeatherData> listDatas = null;
Results results = null;
WeatherData weatherData = null;
WeatherInfo weatherInfo = null;
JSONObject jsonObject = new JSONObject(jsonString); // 解析WeatherInfo对象
weatherInfo = new WeatherInfo();
weatherInfo.setError(jsonObject.getString("error"));
weatherInfo.setStatus(jsonObject.getString("status"));
weatherInfo.setDate(jsonObject.getString("date"));
// 解析Results对象
listResults = new ArrayList<Results>();
JSONArray jsonResArray = jsonObject.getJSONArray("results");
for (int i = 0; i < jsonResArray.length(); i++) {
results = new Results();
JSONObject temp = (JSONObject) jsonResArray.opt(i);
results.setCurrentCity(temp.getString("currentCity")); // 解析WeatherData对象数组
JSONArray jsonArray = temp.getJSONArray("weather_data");
listDatas = new ArrayList<WeatherData>();
for (int i1 = 0; i1 < jsonArray.length(); i1++) {
weatherData = new WeatherData();
JSONObject temp1 = (JSONObject) jsonArray.opt(i1);
weatherData.setDate(temp1.getString("date"));
weatherData.setDayPictureUrl(temp1.getString("dayPictureUrl"));
weatherData.setNightPictureUrl(temp1
.getString("nightPictureUrl"));
weatherData.setWeather(temp1.getString("weather"));
weatherData.setWind(temp1.getString("wind"));
weatherData.setTemperature(temp1.getString("temperature"));
listDatas.add(weatherData);
weatherData = null;
}
results.setList(listDatas);
listResults.add(results);
results = null;
}
weatherInfo.setList(listResults);
return weatherInfo;
}
}

json 对象

 {
    "error": 0,
    "status": "success",
    "date": "2014-04-28",
    "results": [
        {
            "currentCity": "合肥",
            "weather_data": [
                {
                    "date": "周一(今天, 实时:22℃)",
                    "dayPictureUrl": "www.baidu.com",
                    "nightPictureUrl": "www.baidu.com",
                    "weather": "多云转晴",
                    "wind": "西北风微风",
                    "temperature": "22 ~ 13℃"
                },
                {
                    "date": "周二",
                    "dayPictureUrl": "www.baidu.com",
                    "nightPictureUrl": "1www.baidu.com",
                    "weather": "多云",
                    "wind": "西北风微风",
                    "temperature": "24 ~ 14℃"
                },
                {
                    "date": "周三",
                    "dayPictureUrl": "www.baidu.com",
                    "nightPictureUrl": "www.baidu.com",
                    "weather": "多云转晴",
                    "wind": "南风微风",
                    "temperature": "26 ~ 14℃"
                },
                {
                    "date": "周四",
                    "dayPictureUrl": "www.baidu.com",
                    "nightPictureUrl": "www.baidu.com",
                    "weather": "晴",
                    "wind": "东南风微风",
                    "temperature": "27 ~ 13℃"
                }
            ]
        }
    ]
}

【参考文献】

http://blog.csdn.net/u010794950/article/details/24650421

Android 开发工具类 14_ JsonTools的更多相关文章

  1. Android开发工具类

    7种无须编程的DIY开发工具 你知道几个? 现如今,各种DIY开发工具不断的出现,使得企业和个人在短短几分钟内就能完成应用的创建和发布,大大节省了在时间和资金上的投入.此外,DIY工 具的出现,也帮助 ...

  2. android开发工具类之获得WIFI IP地址或者手机网络IP

    有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...

  3. android开发工具类总结(一)

    一.日志工具类 Log.java public class L { private L() { /* 不可被实例化 */ throw new UnsupportedOperationException ...

  4. Android 开发工具类 35_PatchUtils

    增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...

  5. Android 开发工具类 13_ SaxService

    网络 xml 解析方式 package com.example.dashu_saxxml; import java.io.IOException; import java.io.InputStream ...

  6. Android 开发工具类 06_NetUtils

    跟网络相关的工具类: 1.判断网络是否连接: 2.判断是否是 wifi 连接: 3.打开网络设置界面: import android.app.Activity; import android.cont ...

  7. Android 开发工具类 03_HttpUtils

    Http 请求的工具类: 1.异步的 Get 请求: 2.异步的 Post 请求: 3.Get 请求,获得返回数据: 4.向指定 URL 发送 POST方法的请求. import java.io.Bu ...

  8. Android 开发工具类 19_NetworkStateReceiver

    检测网络状态改变类: 1.注册网络状态广播: 2.检查网络状态: 3.注销网络状态广播: 4.获取当前网络状态,true为网络连接成功,否则网络连接失败: 5.注册网络连接观察者: 6.注销网络连接观 ...

  9. Android 开发工具类 27_多线程下载大文件

    多线程下载大文件时序图 FileDownloader.java package com.wangjialin.internet.service.downloader; import java.io.F ...

随机推荐

  1. Cadence丢失了csdCommon.dll

    http://bbs.elecfans.com/jishu_450237_1_1.html

  2. PGF基本图形对象

    \documentclass{article} \usepackage[active ,tightpage ,xetex ]{ preview} \usepackage{tikz} \begin{do ...

  3. PYQT5实现 关闭 提示弹框

    当关闭窗口时,要实现如下功能: def closeEvent(self, event): reply = QtWidgets.QMessageBox.question(self, '警告', '退出后 ...

  4. Js加密算法

    使用crypto-js在浏览器上对数据加密签名 重要知识点: CryptoJS.lib.WordArray  WordArray对象可以理解为byte[] CryptoJS.enc 提供编码转换,从字 ...

  5. Socket编程入门

      socket基本知识 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket. 建立网络通信连接至少要一对端口号(socket).socket本质是编程接口(AP ...

  6. Restframework 频率throttle组件实例-3

    频率逻辑: from rest_framework.throttling import BaseThrottle import time VISIT_RECORD={} class VisitThro ...

  7. jQuery基础笔记 事件(6)

    day56 参考:https://www.cnblogs.com/liwenzhou/p/8178806.html#autoid-1-9-6 事件 *****         1. 目前为止学过的绑定 ...

  8. biz_platform项目过程

    1.前台界面主要采用React框架.通过Ajax方式将数据与tornado服务器交互.以下代码为请求后台数据. var ThisPage = React.createClass({ render: f ...

  9. centos6安装最新syslog-ng推送hdfs

    可参考以下网址: installhttps://www.syslog-ng.com/community/b/blog/posts/latest-syslog-ng-available-rhel-6-c ...

  10. Storm一致性事物

    Storm是一个分布式的流处理系统,利用anchor和ack机制保证所有的tuple都被处理成功.如果tuple出错,则可以被重传,但是如何保证出错的tuple只被处理一次呢?换句话说Storm如何保 ...