package br.com.ecodetech.alunoweb.integracao; import org.primefaces.json.JSONArray; import org.primefaces.json.JSONException; import org.primefaces.json.JSONObject; public class Teste { public static void main(String[] args) throws JSONException { // entrada: // string // json com // dados dos // filmes String jsonStr = "{" + "\"devmovies\":" + "{" + "\"filme\":" + "[" + "{" + "\"id\":1," + "\"titulo\":\"Os Arquivos JSON\"," + "\"ano\":1998," + "\"resumo\":\"A história dos arquivos muito leves\"," + "\"generos\":[\"Ação\",\"Sci-fi\",\"Drama\"]," + "\"elenco\":[\"Gillian Triggerson\",\"David Markupovny\"]" + "}," + "{" + "\"id\":2," + "\"titulo\":\"Sexta-feira 13: JSON Vive\"," + "\"ano\":1986," + "\"generos\":[\"Ação\",\"Horror\"]," + "\"elenco\":[\"Ann Labelvalue Pair\", \"Jennifer Json\", \"John Java\"]" + "}" + "]" + "}" + "}"; // (1) importa a string para um JSONObject JSONObject devMovies = new JSONObject(jsonStr); System.out.println(jsonStr); // (2) trabalha o conteúdo do JSONObject // imprimindo os dados dos // filmes, a partir do objeto devMovies // obtém o objeto "devmovies" JSONObject filmes = devMovies.getJSONObject("devmovies"); // obtém o array contendo todos os filmes de "devmovies" JSONArray arrFilmes = filmes.getJSONArray("filme"); // monta laço que percorre o array e imprime os dados de cada filme for (int i = 0; i < arrFilmes.length(); i++) { // recupera filme de // índice "i" no array JSONObject f = arrFilmes.getJSONObject(i); System.out.println("id: " + f.getInt("id")); System.out.println("titulo: " + f.getString("titulo")); System.out.println("ano: " + f.getInt("ano")); // como o campo "resumo" é opcional, é preciso usar o método "opt()" // se o valor "-" for omitido, a palavra "null" é impressa no // segundo filme System.out.println("resumo: " + f.optString("resumo", "-")); // gêneros JSONArray arrGeneros = f.getJSONArray("generos"); for (int k = 0; k < arrGeneros.length(); k++) { System.out.println("genero " + (k + 1) + ": " + arrGeneros.getString(k)); } // elenco System.out.println("elenco: "); JSONArray arrAtores = f.getJSONArray("elenco"); for (int j = 0; j < arrAtores.length(); j++) { System.out.println("\t" + arrAtores.getString(j)); } System.out.println(); } } }