天气 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. MATLAB中的快捷键

    Ctrl + c  中止程序的运行,鼠标要点到命令窗内.

  2. 二)spring 集成 ehcache jgroups 集群

    依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-co ...

  3. (最小生成树) Borg Maze -- POJ -- 3026

    链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...

  4. 利用ASIHTTPRequest访问网络

    ASIHTTPRequest是第三方类库,ASIHTTPRequest对CFNetwork API进行了封装. 有如下特点: l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作 l ...

  5. Ansible组件之inventory主机清单

    静态inventory 所有的主机信息都存放在Ansible的inventory组件里面,默认Ansible的inventory是一个静态的ini格式的文件/etc/ansible/hosts,当然还 ...

  6. 对SpringDAO层支持的总结

    1.问题 1.JDBC/ORM框架(如Hibernate)开发中编程模型有哪些缺点?  如JDBC   2.解决方案(模板设计模式,本质:将可变的和不可变的分离) 模板方法模式:定义操作的步骤(固定的 ...

  7. 【WinRT】TransitionDemo

    折腾了一晚,将 WinRT 里的所有 Transition 做了一个小 Demo,用于演示各个 Transition 的效果. PS:NavigationThemeTransition 请参考:htt ...

  8. 设计模式之状态模式(State Pattern)

    一.什么是状态模式? 把所有动作都封装在状态对象中,状态持有者将行为委托给当前状态对象 也就是说,状态持有者(比如汽车,电视,ATM机都有多个状态)并不知道动作细节,状态持有者只关心自己当前所处的状态 ...

  9. CodeFirst迁移注意点

    Context构造函数不检查__MigrationHistory 取消当数据库模型发生改变时删除当前数据库重建新数据库的设置.Database.SetInitializer<Context> ...

  10. H5实现页面内跳转页面

    <!DOCTYPE html><html><body> <iframe src="/example/html/demo_iframe.html&qu ...