不知道如何从OpenWeatherMap api获取描述,只知道地点和温度

时间:2017-03-18 04:04:58

标签: android api

我一直致力于制作一个简单的天气应用程序,显示温度,天气和位置的描述。我能够获得该位置,但无法弄清楚如何从OpenWeatherMap获取天气描述,现在它已经困扰了我几个小时。这是代码的一部分,我在其中列出了这些信息:

<?php

define ("site_name","Unlimited Naira");
echo constant("site_name");
?>

但是对于我的生活,我无法弄清楚如何获得描述。

其余代码全部在此处:MainActivity:http://pastebin.com/e2NtTSiP

DownloadTask:http://pastebin.com/ScEREz52

我按照了youtube教程,所以我不太了解所有内容,但我有点想一遍又一遍地做,直到我能做对。

2 个答案:

答案 0 :(得分:0)

如果您的JSON响应如下:

{
  "coord": {
    "lon": -122.08,
    "lat": 37.39
  },
  "weather": [
    {
      "id": 500,
      "main": "Rain",
      "description": "light rain",
      "icon": "10n"
    }
  ],
  "base": "stations",
  "main": {
    "temp": 277.14,
    "pressure": 1025,
    "humidity": 86,
    "temp_min": 275.15,
    "temp_max": 279.15
  },
  "visibility": 16093,
  "wind": {
    "speed": 1.67,
    "deg": 53.0005
  },
  "clouds": {
    "all": 1
  },
  "dt": 1485788160,
  "sys": {
    "type": 1,
    "id": 471,
    "message": 0.0116,
    "country": "US",
    "sunrise": 1485789140,
    "sunset": 1485826300
  },
  "id": 5375480,
  "name": "Mountain View",
  "cod": 200
}

为了从回复中获取天气描述,

  1. 获取“天气”阵列
  2. 对于天气数组中的每个JSON对象,获取JSON对象的“description”属性

    JSONObject obj = new JSONObject(response);
    JSONArray arr = obj.getJSONArray("weather");
    for (int i = 0; i < arr.length(); i++) {
                        JSONObject each = arr.get(i);
                        each.getString("description");
    }
    

答案 1 :(得分:0)

        String weatherInfo = jsonObject.getString("weather");

        Log.i("Weather content", weatherInfo);

        JSONArray arr = new JSONArray(weatherInfo);

        for (int i = 0; i < arr.length(); i++) {

            JSONObject jsonPart = arr.getJSONObject(i);

            String main = "";
            String description = "";

            main = jsonPart.getString("main");
            description = jsonPart.getString("description");

            MainActivity.descriptionTextView.setText(description);

        }

这为我修好了!