开发者社区> 问答> 正文

Gson获得json数据数组内嵌问题

{
"resultcode": "200",
"reason": "successed!",
"result": {
"sk": {
"temp": "24",
"wind_direction": "西风",
"wind_strength": "2级",
"humidity": "64%",
"time": "17:38"
},
"today": {
"temperature": "19℃~25℃",
"weather": "阴转小雨-中雨",
"weather_id": {
"fa": "02",
"fb": "21"
},
"wind": "旋转风微风",
"week": "星期二",
"city": "绵阳",
"date_y": "2015年09月15日",
"dressing_index": "舒适",
"dressing_advice": "建议着长袖T恤、衬衫加单裤等服装。年老体弱者宜着针织长袖衬衫、马甲和长裤。",
"uv_index": "最弱",
"comfort_index": "",
"wash_index": "不宜",
"travel_index": "较适宜",
"exercise_index": "较适宜",
"drying_index": ""
},
"future": [
{
"temperature": "19℃~25℃",
"weather": "阴转小雨-中雨",
"weather_id": {
"fa": "02",
"fb": "21"
},
"wind": "旋转风微风",
"week": "星期二",
"date": "20150915"
},
{
"temperature": "18℃~21℃",
"weather": "中雨",
"weather_id": {
"fa": "08",
"fb": "08"
},
"wind": "东北风微风",
"week": "星期三",
"date": "20150916"
},
{
"temperature": "17℃~21℃",
"weather": "中雨",
"weather_id": {
"fa": "08",
"fb": "08"
},
"wind": "东北风微风",
"week": "星期四",
"date": "20150917"
},
{
"temperature": "19℃~24℃",
"weather": "小雨转阴",
"weather_id": {
"fa": "07",
"fb": "02"
},
"wind": "旋转风微风",
"week": "星期五",
"date": "20150918"
},
{
"temperature": "19℃~26℃",
"weather": "阴",
"weather_id": {
"fa": "02",
"fb": "02"
},
"wind": "旋转风微风",
"week": "星期六",
"date": "20150919"
},
{
"temperature": "19℃~27℃",
"weather": "阴",
"weather_id": {
"fa": "02",
"fb": "02"
},
"wind": "旋转风微风",
"week": "星期日",
"date": "20150920"
},
{
"temperature": "19℃~24℃",
"weather": "阴",
"weather_id": {
"fa": "02",
"fb": "02"
},
"wind": "旋转风微风",
"week": "星期一",
"date": "20150921"
}
]
},
"error_code": 0
}
通过
Gson gson = new Gson();
Book book = gson.fromJson(result, Book.class);
Log.i("info", book.getReason());
我能够得到 reason 的success的值,但是我想要得到result里面的today里面的week的值,请问我要怎么做?数组里面嵌套着数组,我迷茫了。
book.java如下:
public class Book {
private String reason;

public String getReason() {

return reason;

}

public void setReason(String reason) {

this.reason = reason;

}}

展开
收起
杨冬芳 2016-07-05 18:35:33 2331 0
1 条回答
写回答
取消 提交回答
  • IT从业

    public static List getWeather(String json) {
    List weatherModelList = new ArrayList();
    //System.out.println(json + "json");

    JSONTokener jsonParser = new JSONTokener(json);
    WeatherModel weatherModel = null;
    try {
        JSONObject object = (JSONObject) jsonParser.nextValue();
        System.out.println(object.getString("reason") + "---reason");
        if (object.getString("reason").equals("成功")) {
    
            JSONObject result = object.getJSONObject("result");
            JSONObject sk = result.getJSONObject("sk");
            weatherModel = new WeatherModel();
            weatherModel.setTemp(sk.getString("temp"));
            weatherModel.setWindDirection(sk.getString("wind_direction"));
            weatherModel.setWindStrength(sk.getString("wind_strength"));
            weatherModel.setHumidity(sk.getString("humidity"));
            weatherModel.setTime(sk.getString("time"));
            weatherModelList.add(weatherModel);
            weatherModel = null;
    
            JSONObject today = result.getJSONObject("today");
            weatherModel = new WeatherModel();
            weatherModel.setCity(today.getString("city"));
            weatherModel.setDatey(today.getString("date_y"));
            weatherModel.setWeek(today.getString("week"));
            weatherModel.setTemperature(today.getString("temperature"));
            weatherModel.setWeather(today.getString("weather"));
            weatherModel.setFa(today.getString("fa"));
            weatherModel.setFb(today.getString("fb"));
            weatherModel.setWind(today.getString("wind"));
            weatherModel.setDressing_index(today.getString("dressing_index"));
            weatherModel.setDressing_advice(today.getString("dressing_advice"));
            weatherModel.setUv_index(today.getString("uv_index"));
            weatherModel.setComfort_index(today.getString("comfort_index"));
            weatherModel.setWash_index(today.getString("wash_index"));
            weatherModel.setTravel_index(today.getString("travel_index"));
            weatherModel.setExercise_index(today.getString("exercise_index"));
            weatherModel.setDrying_index(today.getString("drying_index"));
            weatherModelList.add(weatherModel);
            weatherModel = null;
            JSONArray arr = result.getJSONArray("future");
    
            for (int i = 0; i < arr.length(); i++) {
                JSONObject cobject = (JSONObject) arr.get(i);
                weatherModel = new WeatherModel();
                weatherModel.setTemperature(cobject.getString("temperature"));
                weatherModel.setWeather(cobject.getString("weather"));
                weatherModel.setFa(cobject.getString("fa"));
                weatherModel.setFb(cobject.getString("fb"));
                weatherModel.setWind(cobject.getString("wind"));
                weatherModel.setWeek(cobject.getString("week"));
                weatherModel.setDate(cobject.getString("date"));
                weatherModelList.add(weatherModel);
            }
        }
    
    } catch (JSONException e) {
        e.printStackTrace();
    }
            我是这样写的
    
    2019-07-17 19:51:47
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载