天气 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. EditPlus常用快捷键[私人]

    EditPlus快捷键大全网上一搜一大把, 本文档只记录自己常用的快捷键, 随时更新: 必用: ctrl + c 复制 ctrl + x 剪切 ctrl + v 粘贴 ctrl + z 回滚 ctrl ...

  2. (转)Entity Framework Extended Library (EF扩展类库,支持批量更新、删除、合并多个查询等)

    转自:http://www.cnblogs.com/jinzhao/archive/2013/05/31/3108755.html 今天乍一看,园子里居然没有关于这个类库的文章,实在是意外毕竟已经有很 ...

  3. hdu 5045 N个人做M道题的正确率

    http://acm.hdu.edu.cn/showproblem.php?pid=5045 给出N个人做M道题的正确率,每道题只能由一个人做出,并且当所有人都做出来且仅做出一道题时,做过题的人才可以 ...

  4. 网页程序 vs 桌面程序

    网页程序 vs 桌面程序 阅读:  评论:  作者:Rybby  日期:  来源:rybby.com 所谓的网页程序就是指以网页作为程序的操作界面,通过脚本语言“javascript”或其它客户端语言 ...

  5. JSTL自定义函数完成ACL即时认证

    即时认证是指,用户进行查询或更新操作时,判断该用户进行是否对该操作有权限. 这里以判断用户是否有删除权限为例.如果用户有删除权限,即显示该按钮:如果没有删除权限,则不显示该按钮. 1.Manager层 ...

  6. SQL 数据库开发一些精典的代码(转自 咏南工作室)

    1.按姓氏笔画排序: Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 2.数据库加密: s ...

  7. java 发架包

    // 完整发布流程 clean compile deploy install -U -DskipTests // 把架包安装到本地,跳过测试 install -Dmaven.test.skip=tru ...

  8. Visual Studio 编译信息细度显示设置

    visual studio 项目在编译时,可根据调试需要设置output窗口输出内容的详细程度,这对于bug或warning的解决具有很大帮助.具体设置如下: 依次点击:"Tools&quo ...

  9. Swift实战-小QQ(第3章):QQ主界面布局

    1.导航栏外观设定*在AppDelegate.swift文件中的didFinishLaunchingWithOptions方法添加以下代码 func application(application: ...

  10. Day 43数据库(Day1)

    创建表. create table student( id int not null auto_increment PRIMARY key, name archar() not null, age i ...