最近在做天气预报的项目,需要用到多重JSON的解析,这里我选用了目前流行的,也公认是最简单易用的框架GSON来解析这个复杂的JSON,虽然在最后结果很简单,但并不意味着整个过程很简单,没有一点问题,恰恰是相反的,我是第一次学习这个GSON,虽然在网上看博客一看即知怎么操作,但是一动手,却发生问题还是有的。
首先,先上我的JSON结构:
{"desc":"OK","status":1000,"data":{"wendu":"15","ganmao":"昼夜温差很大,易发生感冒,请注意适当增减衣服,加强自我防护避免感冒。","forecast":[{"fengxiang":"南风","fengli":"微风级","high":"高温 16℃","type":"晴","low":"低温 2℃","date":"14日星期二"},{"fengxiang":"南风","fengli":"微风级","high":"高温 16℃","type":"多云","low":"低温 4℃","date":"15日星期三"},{"fengxiang":"南风","fengli":"微风级","high":"高温 17℃","type":"多云","low":"低温 7℃","date":"16日星期四"},{"fengxiang":"南风","fengli":"微风级","high":"高温 16℃","type":"阴","low":"低温 5℃","date":"17日星期五"},{"fengxiang":"南风","fengli":"微风级","high":"高温 19℃","type":"晴","low":"低温 5℃","date":"18日星期六"}],"yesterday":{"fl":"微风","fx":"南风","high":"高温 14℃","type":"晴","low":"低温 2℃","date":"13日星期一"},"aqi":"38","city":"北京"}}
在实现时,我是有进行过分层的,这里,我就忽略了……
首先,照着网上一个简单的教程,我把JAVABEAN,设置成这样:
public String desc;
public int status;
public List<Data> data;
public class Data {
public String wendu;
public String ganmao;
public List<Forecast> forecast;
public List<Yesterday> yesterday;
public String aqi;
public String city;
public class Forecast {
public String fengxiang;
public String fengli;
public String high;
public String type;
public String low;
public String date;}
public class Yesterday {
public String fl;
public String fx;
public String high;
public String type;
public String low;
public String date;}
}
}}
public List<Data> data
// public List<Forecast> forecast; // public List<Yesterday> yesterday;在错误中,又把错误指向Yerterday。结合一下我的JSON格式,发现,在Yesterday这里,又只有一个所以只生成一个对象,而Forecast却不止。所以又把代码改了。
public List<Forecast> forecast; public Yesterday yesterday;