// esimerkki REST/JSON palvelun pyytämisestä ja käytöstä // http://openweathermap.org/current // käännös: javac -cp javax.json-1.0.4.jar:. rest_json_openweather.java import java.net.URL; import javax.json.*; import java.io.*; import java.util.Map; public class rest_json_openweather { static String perusUrl = "http://api.openweathermap.org/data/2.5/weather"; static String kaupunki = "q=Joensuu,fi"; static String muoto = ""; // JSON //static String muoto = "&mode=xml"; // XML static String yksikko = "&units=metric"; static String appid = "&appid=681fb05c8a442daf7087d168adc747c4"; //sjuva public static void main(String[] args) { URL url = null; try { String u = perusUrl + "?" + kaupunki + appid + muoto + yksikko; url = new URL(u); } catch (Exception e) { System.out.println("Poikkeus URL + " + e); }; try { InputStream is = url.openStream(); JsonReader rdr = Json.createReader(is); JsonObject obj = rdr.readObject(); // koko roska System.out.println("obj: " + obj + "\n"); // oliosta yksi arvo nimeltä main JsonObject main = obj.getJsonObject("main"); System.out.println("main:" + main); // mainista yksi arvo nimeltä temp JsonNumber temp = main.getJsonNumber("temp"); System.out.println("temp:" + temp); // voidaan myös muuttaa Java-tyypiksi double lampotila = temp.doubleValue(); System.out.println("lämpo:" + lampotila); System.out.println(); // oliota voidaan myös läpikäydä sillä se tarjoaa kuvauksen rajapinnan for (Map.Entry ent : main.entrySet()) { System.out.println("" + ent.getKey() + ":" + ent.getValue()); } } catch (Exception e) { System.out.println("Poikkeus käsittelyssä + " + e); }; } } // class