package com.lauren.simplenews.weather;
import android.text.TextUtils;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.lauren.simplenews.R;
import com.lauren.simplenews.beans.WeatherBean;
import java.util.ArrayList;
import java.util.List;
/**
* Description :
* Author : lauren
* Email : lauren.liuling@gmail.com
* Blog : http://www.liuling123.com
* Date : 2015/12/22
*/
public class WeatherJsonUtils {
/**
* 从定位的json字串中获取城市
* @param json
* @return
*/
public static String getCity(String json) {
JsonParser parser = new JsonParser();
JsonObject jsonObj = parser.parse(json).getAsJsonObject();
JsonElement status = jsonObj.get("status");
if(status != null && "OK".equals(status.getAsString())) {
JsonObject result = jsonObj.getAsJsonObject("result");
if(result != null) {
JsonObject addressComponent = result.getAsJsonObject("addressComponent");
if(addressComponent != null) {
JsonElement cityElement = addressComponent.get("city");
if(cityElement != null) {
return cityElement.getAsString().replace("市", "");
}
}
}
}
return null;
}
/**
* 获取天气信息
* @param json
* @return
*/
public static List<WeatherBean> getWeatherInfo(String json) {
List<WeatherBean> list = new ArrayList<WeatherBean>();
if (TextUtils.isEmpty(json)) {
return list;
}
JsonParser parser = new JsonParser();
JsonObject jsonObj = parser.parse(json).getAsJsonObject();
String status = jsonObj.get("status").getAsString();
if("1000".equals(status)) {
JsonArray jsonArray = jsonObj.getAsJsonObject("data").getAsJsonArray("forecast");
for (int i = 0; i < jsonArray.size(); i++) {
WeatherBean weatherBean = getWeatherBeanFromJson(jsonArray.get(i).getAsJsonObject());
list.add(weatherBean);
}
}
return list;
}
private static WeatherBean getWeatherBeanFromJson(JsonObject jsonObject) {
String temperature = jsonObject.get("high").getAsString() + " " + jsonObject.get("low").getAsString();
String weather = jsonObject.get("type").getAsString();
String wind = jsonObject.get("fengxiang").getAsString();
String date = jsonObject.get("date").getAsString();
WeatherBean weatherBean = new WeatherBean();
weatherBean.setDate(date);
weatherBean.setTemperature(temperature);
weatherBean.setWeather(weather);
weatherBean.setWeek(date.substring(date.length()-3));
weatherBean.setWind(wind);
weatherBean.setImageRes(getWeatherImage(weather));
return weatherBean;
}
public static int getWeatherImage(String weather) {
if (weather.equals("多云") || weather.equals("多云转阴") || weather.equals("多云转晴")) {
return R.drawable.biz_plugin_weather_duoyun;
} else if (weather.equals("中雨") || weather.equals("中到大雨")) {
return R.drawable.biz_plugin_weather_zhongyu;
} else if (weather.equals("雷阵雨")) {
return R.drawable.biz_plugin_weather_leizhenyu;
} else if (weather.equals("阵雨") || weather.equals("阵雨转多云")) {
return R.drawable.biz_plugin_weather_zhenyu;
} else if (weather.equals("暴雪")) {
return R.drawable.biz_plugin_weather_baoxue;
} else if (weather.equals("暴雨")) {
return R.drawable.biz_plugin_weather_baoyu;
} else if (weather.equals("大暴雨")) {
return R.drawable.biz_plugin_weather_dabaoyu;
} else if (weather.equals("大雪")) {
return R.drawable.biz_plugin_weather_daxue;
} else if (weather.equals("大雨") || weather.equals("大雨转中雨")) {
return R.drawable.biz_plugin_weather_dayu;
} else if (weather.equals("雷阵雨冰雹")) {
return R.drawable.biz_plugin_weather_leizhenyubingbao;
} else if (weather.equals("晴")) {
return R.drawable.biz_plugin_weather_qing;
} else if (weather.equals("沙尘暴")) {
return R.drawable.biz_plugin_weather_shachenbao;
} else if (weather.equals("特大暴雨")) {
return R.drawable.biz_plugin_weather_tedabaoyu;
} else if (weather.equals("雾") || weather.equals("雾霾")) {
return R.drawable.biz_plugin_weather_wu;
} else if (weather.equals("小雪")) {
return R.drawable.biz_plugin_weather_xiaoxue;
} else if (weather.equals("小雨")) {
return R.drawable.biz_plugin_weather_xiaoyu;
} else if (weather.equals("阴")) {
return R.drawable.biz_plugin_weather_yin;
} else if (weather.equals("雨夹雪")) {
return R.drawable.biz_plugin_weather_yujiaxue;
} else if (weather.equals("阵雪")) {
return R.drawable.biz_plugin_weather_zhenxue;
} else if (weather.equals("中雪")) {
return R.drawable.biz_plugin_weather_zhongxue;
} else {
return R.drawable.biz_plugin_weather_duoyun;
}
}
}