Como vão colegas… estou com uma pequena dificuldade para recuperar valores de Json, eu consigo ler o arquivo e tals, mais algo errado na minha logica.
tenho um arquivo chamado TABELA.JSON, que contem os MESES do ANO, em cada mes tenho 3 valores decimais. Ao percorrer o array q contem os meses, faço um switch case no qual verifica uma string, para recuperar somente os dados de um determinado mes, porem ele retorna um objeto null no final da iteração; segue os codigos para enteder melhor
public Imposto_Model getBaseImpostoMensal(Imposto_Model referencia) throws IOException, ParseException {
Imposto_Model base = new Imposto_Model();
JSONObject dadosJson = lerArquivoJson(); // recupera dados da tabela.json
JSONArray meses = new JSONArray(); // meses do ano
JSONArray aliq = new JSONArray(); // aliquotas dos meses
String ano = referencia.getAnoReferencia();
if (dadosJson.containsKey(ano)) {
meses = (JSONArray) dadosJson.get(ano);
JSONArray obj2 = new JSONArray();
JSONObject obj = new JSONObject();
for (int i = 0; i < meses.size(); i++) {
String s = referencia.getMesReferencia();
obj = (JSONObject) meses.get(i);
// System.out.println(obj.get(s));
switch (s) {
case "Janeiro":
obj2 = (JSONArray) obj.get(s);
System.out.println("objeto " + obj.toJSONString());
break;
case "Fevereiro":
obj2 = (JSONArray) obj.get(s);
System.out.println("objeto " + obj.toJSONString());
break;
case "Março":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Abril":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Maio":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Junho":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Julho":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Agosto":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Setembro":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Outubro":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Novembro":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
case "Dezembro":
obj2 = (JSONArray) obj.get(s);
// System.out.println(obj2.toJSONString());
break;
}
}
} else {
System.out.println("Else ANO");
}
return base;
}
Esses são os dados q esta no arquivo TABELA.JSON
{"2020":[{"Janeiro":[11.0,713.0]},{"Fevereiro":[11.0,700.0]},{"Março":[11.0,600.0]},{"Abril":[11.0,500.0]},{"Maio":[11.0,400.0]},{"Junho":[11.0,300.0]},{"Julho":[11.0,100.0]},{"Agosto":[11.0,150.0]}]}