<prompt> Tengeneza programu ya Java inayoingiliana na API ya RESTful ili kuleta data ya hali ya hewa ya eneo fulani, kuchanganua jibu la JSON, na kuonyesha halijoto ya sasa, unyevunyevu na kasi ya upepo.PLINFORMAT  <response>: agiza java.io.BufferedReader;agiza java.io.InputStreamReader;ingiza java.net.HttpURLConnection;ingiza java.net.URL;agiza org.json.JSONObject;hali ya hewa ya darasa la umma Kamba ya tuli ya faragha API_KEY your_api_key_here; Private tuli final Kamba BASE_URL utupu tuli wa umma String args Eneo la kamba London; Badilisha hii na eneo lako unalotaka jaribu JSONObject weatherData fetchWeatherDatamahali; displayWeatherInfohali ya hewaData; kukamata Isipokuwa e System.out.printlnHitilafu katika kuleta data ya hali ya hewa: e.getMessage; tuli ya kibinafsi ya JSONObject fetchWeatherDataeneo la kamba hutupa Isipokuwa URL url URL mpyaBASE_URL eneo appid API_KEY; HttpURLConnection connection HttpURLConnection url.openConnection; connection.setRequestMethodGET; connection.connect; int responseCode connection.getResponseCode; ikiwa Msimbo wa majibu ! 200 tupa RuntimeException mpyaImeshindwa kuleta data ya hali ya hewa: msimbo wa hitilafu wa HTTP responseCode; Kisomaji cha BufferedReader BufferedReader mpyampya InputStreamReaderconnection.getInputStream; StringBuilder stringBuilder new StringBuilder; Mstari wa kamba; wakati line reader.readLine ! null stringBuilder.appendline; msomaji.funga; rudisha JSONObject mpyastringBuilder.toString; onyesho la utupu tuli la kibinafsiWeatherInfoJSONObject weatherData JSONObject kuu weatherData.getJSONObjectkuu; joto mara mbili kuu.getDoubletemp - 273.15; Badilisha kutoka Kelvin hadi Celsius unyevu wa int main.getIntunyevu; JSONObject wind weatherData.getJSONObjectupepo; windSpeed mbili wind.getDoublekasi; System.out.printlnJoto la Sasa: String.format.2f, halijoto C; System.out.printlnUnyevu: unyevu ; System.out.printlnKasi ya Upepo: Kasi ya upepo ms; 