Ajuda com API JSON-SIMPLE

1 resposta Resolvido
java
Jederson_Andre

Estou tentando recuperar dados de um arquivo Json, utilizando a API Json -simple, porem não estou conseguindo ler os valores, pois estão em um array.

esse é o arquivo json:

{
"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"]
        }
        ]
    }

}

Lendo o arquivo

JSONObject obJson = new JSONObject();
    JSONParser parse = new JSONParser();
    JSONArray array = new JSONArray();

    try {

        obJson = (JSONObject) parse.parse(new FileReader(arqJson));
        //System.out.println(obJson.toJSONString());
        array.addAll(obJson.values());
        for (int i = 1; i < array.size(); i++) {
            JSONObject json = (JSONObject)array.get(i);
            System.out.println(json.toString());
        }

    } catch (FileNotFoundException ex) {
        Logger.getLogger(Json_Model.class.getName()).log(Level.SEVERE, null, ex);
    } catch (IOException | ParseException ex) {
        Logger.getLogger(Json_Model.class.getName()).log(Level.SEVERE, null, ex);
    }

}

1 Resposta

Jederson_Andre
Solucao aceita

So para deixar aos amigos iniciantes… para resolver o problema utilizei XML e não JSON,
com a API DOM4J para java.

XML de exemplo:

<?xml version="1.0"?>
<base>
<anos ano="2018">
	<Janeiro>621.0</Janeiro>
	<Fevereiro>622.0</Fevereiro>
	<Marco>623.0</Marco>
</anos>
<anos ano="2019">
	<Janeiro>641.0</Janeiro>
	<Fevereiro>645.0</Fevereiro>
	<Marco>646.0</Marco>
</anos>

exemplo de leitura do XML:

public static void main(String[] args) {

    try {
        SAXReader reader = new SAXReader();
        Document doc = reader.read("baseInss.xml");
        
        Element elementoPai = doc.getRootElement();
        
        for (Object obj : elementoPai.elements()) {
            Element elemento = (Element)obj;
            
            String ano = elemento.attributeValue("ano");
            if(ano.equals("2019")){
                System.out.println("Ano é 2019");
                System.out.println("Mes de referencia é: " + elemento.element("Marco").getName() + " - Valor teto é: " + elemento.element("Marco").getText());
            }
        }    
    } catch (DocumentException ex) {
        Logger.getLogger(CarregarXml.class.getName()).log(Level.SEVERE, null, ex);
    }    
}
Criado 28 de março de 2019
Ultima resposta 28 de mar. de 2019
Respostas 1
Participantes 1