Android 开发工具类 14_ JsonTools
天气 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的更多相关文章
- Android开发工具类
7种无须编程的DIY开发工具 你知道几个? 现如今,各种DIY开发工具不断的出现,使得企业和个人在短短几分钟内就能完成应用的创建和发布,大大节省了在时间和资金上的投入.此外,DIY工 具的出现,也帮助 ...
- android开发工具类之获得WIFI IP地址或者手机网络IP
有的时候我们需要获得WIFI的IP地址获得手机网络的IP地址,这是一个工具类,专门解决这个问题,这里需要两个权限: <uses-permission android:name="and ...
- android开发工具类总结(一)
一.日志工具类 Log.java public class L { private L() { /* 不可被实例化 */ throw new UnsupportedOperationException ...
- Android 开发工具类 35_PatchUtils
增量更新工具类[https://github.com/cundong/SmartAppUpdates] import java.io.File; import android.app.Activity ...
- Android 开发工具类 13_ SaxService
网络 xml 解析方式 package com.example.dashu_saxxml; import java.io.IOException; import java.io.InputStream ...
- Android 开发工具类 06_NetUtils
跟网络相关的工具类: 1.判断网络是否连接: 2.判断是否是 wifi 连接: 3.打开网络设置界面: import android.app.Activity; import android.cont ...
- Android 开发工具类 03_HttpUtils
Http 请求的工具类: 1.异步的 Get 请求: 2.异步的 Post 请求: 3.Get 请求,获得返回数据: 4.向指定 URL 发送 POST方法的请求. import java.io.Bu ...
- Android 开发工具类 19_NetworkStateReceiver
检测网络状态改变类: 1.注册网络状态广播: 2.检查网络状态: 3.注销网络状态广播: 4.获取当前网络状态,true为网络连接成功,否则网络连接失败: 5.注册网络连接观察者: 6.注销网络连接观 ...
- Android 开发工具类 27_多线程下载大文件
多线程下载大文件时序图 FileDownloader.java package com.wangjialin.internet.service.downloader; import java.io.F ...
随机推荐
- MATLAB中的快捷键
Ctrl + c 中止程序的运行,鼠标要点到命令窗内.
- 二)spring 集成 ehcache jgroups 集群
依赖 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-co ...
- (最小生成树) Borg Maze -- POJ -- 3026
链接: http://poj.org/problem?id=3026 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=82831#probl ...
- 利用ASIHTTPRequest访问网络
ASIHTTPRequest是第三方类库,ASIHTTPRequest对CFNetwork API进行了封装. 有如下特点: l 通过简单的接口,即可完成向服务端提交数据和从服务端获取数据的工作 l ...
- Ansible组件之inventory主机清单
静态inventory 所有的主机信息都存放在Ansible的inventory组件里面,默认Ansible的inventory是一个静态的ini格式的文件/etc/ansible/hosts,当然还 ...
- 对SpringDAO层支持的总结
1.问题 1.JDBC/ORM框架(如Hibernate)开发中编程模型有哪些缺点? 如JDBC 2.解决方案(模板设计模式,本质:将可变的和不可变的分离) 模板方法模式:定义操作的步骤(固定的 ...
- 【WinRT】TransitionDemo
折腾了一晚,将 WinRT 里的所有 Transition 做了一个小 Demo,用于演示各个 Transition 的效果. PS:NavigationThemeTransition 请参考:htt ...
- 设计模式之状态模式(State Pattern)
一.什么是状态模式? 把所有动作都封装在状态对象中,状态持有者将行为委托给当前状态对象 也就是说,状态持有者(比如汽车,电视,ATM机都有多个状态)并不知道动作细节,状态持有者只关心自己当前所处的状态 ...
- CodeFirst迁移注意点
Context构造函数不检查__MigrationHistory 取消当数据库模型发生改变时删除当前数据库重建新数据库的设置.Database.SetInitializer<Context> ...
- H5实现页面内跳转页面
<!DOCTYPE html><html><body> <iframe src="/example/html/demo_iframe.html&qu ...