// esimerkki REST/JSON palvelun pyytämisestä ja käytöstä // http://www.amica.fi/modules/json/json/index?costNumber=0413&firstDay=2015-11-24&lastDay=2015-11-25&kieli=fi // käännös: javac -cp javax.json-1.0.4.jar:. rest_json_amica.java import java.net.URL; import javax.json.*; import java.io.*; import java.util.Map; public class rest_json_amica { static String perusUrl = "http://www.amica.fi/modules/json/json/index"; // static String ravintola = "costNumber=0413"; // Amica Aura Joensuu static String ravintola = "costNumber=0437"; // Amica Snellmania Kuopio static String paivaus = "&firstDay=2016-11-22&lastDay=2016-11-26"; static String kieli = "&language=fi"; public static void main(String[] args) { URL url = null; try { String u = perusUrl + "?" + ravintola + paivaus + kieli; 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 // sisällön tulostus // System.out.println("obj: " + obj + "\n"); // oliosta yksi taulukko JsonArray mdays = obj.getJsonArray("MenusForDays"); for (JsonObject day : mdays.getValuesAs(JsonObject.class)) { JsonString pvm = day.getJsonString("Date"); System.out.println("\n" + pvm); JsonArray menus = day.getJsonArray("SetMenus"); for (JsonObject menu : menus.getValuesAs(JsonObject.class)) { String hinta = ""; if (! menu.isNull("Price")) // hinta voi olla null josta ei tule JsonString:iä menu.getJsonString("Price").toString(); JsonArray meals = menu.getJsonArray("Components"); for (JsonString meal : meals.getValuesAs(JsonString.class)) { System.out.println(meal.toString() + ":" + hinta); } } } } catch (Exception e) { System.out.println("Poikkeus käsittelyssä + " + e); }; } } // class