Search code examples
androidjsonweather-apiopenweathermap

How to tell the if the City is incorrect in OpenWeatherMap api and in android


I am creating an app which will tell the weather condition of a city using the OpenWeatherMap.org api. In this app I let user to write a city name and the data will be fetched from the web. But what if the user entered wrong city.

For example if a user entered Lomdon instead of London.

What should I do in that case. The Api I am using is "http://api.openweathermap.org/data/2.5/weather?q="+city name

Thanks in advance for the help, I am new to android development.


Solution

  • If the city is incorrect your API returns an error message. You can check it like this:

    "http://api.openweathermap.org/data/2.5/weather?q=Lomdon"

        try {
            String msg = jsonObject.getString("message");
            if (msg.equalsIgnoreCase("Error: Not found city")) {
                Log.e("TAG", "City not found");
            } else {
                // Use the data
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }
    

    The reason I didn't use cod which looks like the return code, is that if the city is found cod is an int and if it's not found it's a string. Kind of misleading to design the JSON like that.